Cuando trabaje con Flash y Actionscript 3.0, a menudo se encontrará repitiendo el código de un proyecto al siguiente. Crear su propia biblioteca de fragmentos de código reutilizables (en snipplr.com, por ejemplo) es una excelente manera de acelerar el desarrollo. Echa un vistazo a estos 15 fragmentos de código que te pueden resultar útiles para integrarlos en tu propia biblioteca de códigos..
Algunos de los siguientes fragmentos de código se presentan aquí como funciones que se pueden usar tal como están. Si bien debería poder colocarlos en su propio código según sea necesario, le recomiendo que se tome el tiempo de mirar realmente el código para obtener una comprensión más profunda de lo que está sucediendo. Mirar los fragmentos de código es una excelente manera de aprender nuevas técnicas y mejorar sus habilidades de programación en general.
Snipplr es una de las adquisiciones más recientes de Envato. Un repositorio de fragmentos de código, un centro social y una adición muy útil al cinturón de herramientas de Envato. Con Snipplr puede mantener todos los fragmentos de código de uso frecuente en un solo lugar, accesibles desde cualquier computadora. Puede compartir su código con otros visitantes y hacer uso de lo que publican..
Puede seguir a @snipplr en Twitter y mantenerse actualizado a través de la nueva página de Snipplr en Facebook. Si tienes alguno de tus propios fragmentos de AS3 que te gustaría compartir, agrégalos a Snipplr y deja la url en los comentarios.!
Usuario del mercado? ¿Por qué no vincular a su cuenta Snipplr desde su perfil social de Marketplace??Para aleatorizar una matriz, hacemos un bucle sobre la longitud de la matriz, eliminando un objeto elegido al azar y luego volviéndolo a agregar a la posición final de la matriz. Piensa en esto como si tuvieras una baraja de cartas en la que seleccionas una carta al azar de la baraja y la mueves a la parte superior de la pila repetida para el número total de cartas en la baraja.
Es importante tener en cuenta que el método de empalme devuelve una matriz que contiene el objeto eliminado y no el objeto en sí, por lo que se agrega la [0]
Después de la llamada de empalme para hacer referencia al objeto contenido.
Esta es una forma corta de posicionar objetos de visualización en un diseño de cuadrícula. Hace uso del modulo operador (%
) para colocar cada objeto de visualización a lo largo del eje xy el piso
Método de la clase de matemáticas para la posición y..
Este ejemplo crea 20 instancias de un objeto de visualización personalizado llamado MyDisplayObject
posicionando cada instancia en una cuadrícula de 5 columnas de ancho. Como puede haber adivinado, los dos 5 en el fragmento representan el número de columnas en la cuadrícula.
DisplayObjectContainer
, una clase principal de las clases de contenedor más comunes, como MovieClip y Sprite, no tiene un método incorporado para eliminar de inmediato a todos los elementos secundarios. Para eliminar a todos los hijos, simplemente usamos un bucle while para eliminar al niño que ocupa el índice 0 en la pila hasta que no quede ningún niño.
Para obtener la URL completa tal como aparece en la barra de direcciones de su navegador web, usamos AS3 Interfaz externa
clase. Sin entrar en demasiados detalles, sepa que en este ejemplo usamos ExternalInterface para acceder al DOM (Document Object Model) de la página HTML que contiene nuestro Flash.
Un inconveniente de ExternalInterface es que el SWF debe estar incrustado en la página HTML con el parámetro "allowcriptaccess" establecido en "sameDomain" o "siempre". Esto está bien cuando controla la incrustación de un SWF, pero desafortunadamente no se puede confiar en si el SWF puede ejecutarse en sitios web de terceros. No olvides añadir import flash.external.ExternalInterface
en la parte superior de su documento.
Alternativamente, para acceder a la URL donde reside el SWF podemos acceder a la propiedad url del LoaderInfo
Objeto perteneciente a la raíz de nuestro SWF. Tenga en cuenta que esta es la ubicación del archivo SWF y NO la página HTML en la que está incrustado. Es importante hacer esta distinción, ya que tanto el SWF como el HTML podrían residir en diferentes dominios.
Saber dónde se está ejecutando un archivo SWF es útil para mostrar contenido específico del dominio. En el contexto de un juego Flash, esto podría tener niveles de 'bonificación' solo disponibles cuando el SWF se está ejecutando en el sitio del desarrollador o si se muestran anuncios o no.
Esta es una función recursiva que toma una DisplayObjectContainer
(como un Sprite o MovieClip) y redondea los valores x e y de él y sus hijos. Es recursiva, ya que la función se llama a sí misma cuando se encuentra con un niño que también es un DisplayObjectContainer
por lo que sus hijos también se redondean. Esto recurre a toda la lista de visualización debajo de la pasada DisplayObjectContainer
, Sus hijos, sus hijos, etc..
El punto de esta función es asegurarse de que la pasada DisplayObjectContainer
y todos sus hijos se sientan en píxeles enteros. Esto puede ser importante cuando se trata de gráficos que no se encuentran en píxeles enteros, ya que hará que aparezcan borrosos. Esto es probablemente más notable cuando se trata de fuentes de píxeles..
Notarás el primero si verifica la declaración para ver si pasa DisplayObjectContainer
NO es el escenario. Esto es necesario ya que Stage hereda de DisplayObjectContainer
pero no implementa las propiedades x e y (junto con varias otras propiedades). Esto le permite pasar el escenario de manera segura como un parámetro de esta función, que a su vez redondeará la posición de todos los objetos en la lista de visualización..
La generación de un número aleatorio suele ser útil cuando se desarrollan aplicaciones en AS3 (más aún cuando se desarrollan juegos). AS3 tiene incorporado un método de números aleatorios como parte de su clase matemática que genera un número menor que 1 y mayor o igual que 0. Podemos usar esto para crear una función útil para generar un número aleatorio entre otros dos números..
Fragmento de código: número aleatorio entre dos valores en SnipplrDe manera similar a la necesidad de un número aleatorio, también puede requerir un Booleano aleatorio para usar en una expresión. De nuevo usamos el aleatorio
Método de la clase de matemáticas para simplemente devolver verdadero si aleatorio()
genera un número mayor o igual a 0.5 o falso si es menos.
Este es otro fragmento común utilizado por los desarrolladores de juegos para encontrar el ángulo entre dos puntos en un plano. Esta función tiene cuatro parámetros; el primer par son los valores x e y de su primer punto y el segundo par son los valores x e y de su segundo punto.
Es importante tener en cuenta que esta función devuelve el ángulo en radianes NO grados.
Fragmento de código: encuentre el ángulo entre dos puntos en SnipplrCuando se trata de ecuaciones con ángulos, a menudo se trata de radianes y no de grados. Los objetos de visualización en Flash utilizan grados cuando se trata de su propiedad de rotación, por lo que necesitamos una forma de convertir entre los dos. Estas funciones de ayuda son útiles para lograr precisamente eso; uno para convertir radianes a grados y los otros grados a radianes.
Fragmento de código: conversión entre radianes y grados en SnipplrCuando se acepta la entrada de un usuario a través de un formulario, a menudo es necesario validar los datos antes de permitir que se envíen a un script de back-end. Esto es más cierto para las direcciones de correo electrónico, ya que a menudo son el único punto de contacto entre usted y el usuario y son importantes para hacerlo bien. La siguiente función utiliza una expresión regular para confirmar que el correo electrónico tiene un formato válido..
Fragmento de código - Validación de correo electrónico en SnipplrSi no está seguro de qué es una expresión regular, asegúrese de leer este artículo en wikipedia, así como la documentación de AS3 para el tipo RegExp. Asegúrese de revisar también Validar varios datos de entrada en Flash.
De la misma manera que a menudo necesita formatear los datos que se envían desde Flash, a veces necesita formatear los datos que se reciben. Esta función toma una cadena y elimina todos los espacios de ella. Aquí usamos el método de división de la clase String para dividir la cadena en un Array y luego llamar al método de unión de la clase Array para convertirla nuevamente en una cadena. Esto es útil cuando se trata de una cadena que sabe que no puede contener espacios como una dirección de correo electrónico, URL o número de teléfono. Esto devuelve una nueva cadena, dejando la cadena de entrada sin cambios.
Fragmento de código - Eliminación de espacio en SnipplrSi se está preguntando por qué no usamos una expresión regular aquí, es simplemente porque este método se ejecuta más rápido..
Wikipedia describe una babosa como
parte de una URL que identifica una página usando palabras clave legibles para el usuario
Una bala es generalmente unas pocas palabras con cada palabra separada por un carácter delimitador, generalmente un guión bajo o un guión. Una versión slugificada de la cadena "¡10 consejos para una vida mejor!" sería "10-tips-to-a-a-better-life".
Esta función toma una cadena arbitraria y se convierte para su uso como un slug. Usamos dos expresiones regulares para lograr esto, la primera se usa para eliminar cualquier carácter que no sea una palabra, un espacio o un guión, la segunda reemplaza cualquier espacio con un solo guión. Finalmente convertimos la cadena a minúsculas. Esto devuelve una nueva cadena, dejando la cadena de entrada sin cambios.
Fragmento de código - Slugify en SnipplrSi se está preguntando dónde podría usarse esto en el contexto de Flash, es particularmente útil con SWFAddress para crear URLs amigables para SEO para las secciones discretas de su aplicación..
http: //
o https: //
De una cadena, opcionalmente quitando www.
Esta función toma una cadena y devuelve una copia con todas las apariciones de http: //
y https: //
remoto. La cadena "Por favor, visite http://example.com para obtener más información" se convertiría a "Por favor, visite example.com para obtener más información". En general, esto es más compacto ya que http: // es redundante cuando obviamente se está refiriendo a una URL.
Opcionalmente, esta función también puede quitar la www
subdominio pasando verdadero como el segundo parámetro. Se establece en falso de manera predeterminada, ya que example.com y www.example.com podrían contener diferentes sitios web.
Si alguna vez se carga un texto de una fuente externa que contiene un marcado HTML no deseado, use la siguiente función. Esto utiliza una expresión regular para eliminar todas las etiquetas HTML de la cadena de entrada. La cuerda "Haga clic aquí para obtener más información."simplemente se convertiría a" Haga clic aquí para obtener más información ". Esto devuelve una nueva cadena, dejando la cadena de entrada sin cambios.
Fragmento de código - Eliminar código HTML en SnipplrLa carga de XML, específicamente de fuentes de terceros, a veces puede resultar problemática cuando XML utiliza espacios de nombres. Este fragmento tomará un objeto XML y eliminará todas las declaraciones de espacio de nombres y prefijos. Este fragmento de código deja el XML de entrada sin cambios y devuelve un nuevo objeto XML.
Fragmento de código - Eliminar espacios de nombres XML en SnipplrVale la pena mencionar que los espacios de nombres existen por una razón y eliminarlos puede causar problemas. Esto generalmente es solo un problema cuando se combinan múltiples archivos XML de diferentes fuentes. Personalmente, nunca he experimentado esto, pero todavía vale la pena desconfiar de.
Espero que hayas encontrado útiles estos 15 fragmentos. Escribir un código funcional y reutilizable puede ser un gran hábito. Personalmente, creo que mirar los fragmentos de código de otras personas es una excelente manera de aprender consejos y trucos que quizás no hayas pensado antes..
Para ver algunos fragmentos más, diríjase a la sección Actionscript en Snipplr y si tiene alguno de sus propios fragmentos AS3 que quiera compartir, agréguelos a Snipplr y deje la URL en los comentarios!
Si te ha gustado esta publicación, visita mi sitio en ahrooga.com para ver más artículos relacionados con Flash.