Encontronazos con ActionScript 3: El sistema de dibujo y los Display Objects

Este artículo es la parte 2 de 6 de la serie Encontronazos con ActionScript 3

Oops! - Part II by Kyle May

Hace ya bastante tiempo que salió ActionScript 3 (AS3) y los programas que lo utilizan, como Flash CS3 y Flex 3. Hasta hace poco no había tenido el chance de revisarlos un poco, y experimentar con una técnica que voy a utilizar dentro de poco. Para aquellos que conocen ActionScript 2 (AS2), su versión 3 es un campo de minas totalmente distinto 🙂 .

AS 3 cambia el concepto de dibujar cosas en la pantalla y colocar clips. El sistema de AS3 es más explícito, al crear el concepto de Display List. El Display List es una lista que se recorre cada vez que se dibuja un frame (o fotograma) en la pantalla. El recorrido de esta lista asemeja el recorrido de un árbol, en el que en el tope se encuentra la película principal, también conocido como el Stage. La lista la conforman objetos que se pueden dibujar. Algunos de ellos contienen sus propias listas de dibujo que son recorridas cuando se dibuja un frame.

Por ser una estructura muy similar a la de un árbol, los objetos se agregan y se eliminan en lo que llamaremos contenedores. Entonces, el proceso para crear y agregar MovieClips se simplifica:

  1. Se crea una película con una llamada a new MovieClip(); y se asignan las propiedades que tenga.
  2. Se agrega esta película al contenedor, como otro MovieClip o al Stage si no hay nada más en la pantalla. Esto se hace con la función addChild() en el contenedor, o addChildAt() si se quiere hacer en un lugar específico.

¿Cuál es la ventaja de esta aproximación a los gráficos con respecto a AS2? Que es más fácil de comprender. El concepto de “profundidad” (depth) que había en AS2 no se utiliza aquí: el orden en el que se dibujan los objetos está determinado por el orden en el que están insertados en su respectivo contenedor.

AS 3 tiene un enfoque mucho más estricto que su versión anterior con respecto a la orientación de objetos. La programación en AS 3 es 100% orientada a objetos, cosa que gustará mucho a aquellos que ya programan en lenguajes como Java. Ellos van a encontrar que ActionScript 3 va a tener una forma muy similar de programación. En futuros artículos iremos complementando esta información.

Para saber más acerca de los Display Lists, consultar los Livedocs de Adobe concernientes a los Core Display Classes.

* Foto por Kyle May

Encontronazos con ActionScript 3: Cómo hacer juegos con Flash/Flex/ActionScript y FlashDevelop gratis

Este artículo es la parte 2 de 6 de la serie Encontronazos con ActionScript 3

Free Beer

En este artículo explicaremos cómo hacer juegos con Flash/Flex/ActionScript y FlashDevelop en Windows sin costo monetario y completamente legal. La proliferación de herramientas que producen películas SWF ha permitido que se puedan utilizar sin mayor costo que el esfuerzo de instalar y levantar el ambiente de desarrollo. Foto por AGoK.

En la primera parte explicaremos cómo hemos llegado hasta acá, en la segunda parte explicaremos qué software utilizaremos para montar un ambiente gratuito de desarrollo en ActionScript, y en la tercera parte explicaremos paso a paso cómo montarlo.

¿Cómo es eso de desarrollar SWFs gratis?

La herramienta Flash ha pasado a lo largo de estos años de ser una alternativa para hacer animaciones en páginas web a un importante movimiento dentro de Internet para hacer aplicaciones tan o más atractivas que las aplicaciones de escritorio y con una funcionalidad similar o superior.

Macromedia, ahora parte de Adobe, supo desde hace ya varias versiones de Flash que debía orientar tanto la herramienta como su lenguaje de programación, ActionScript, hacia la creación de estas aplicaciones, lo que implicaba la mejora del flujo de trabajo para los programadores de oficio. La culminación de este esfuerzo son dos productos: ActionScript 3, y Flex.

ActionScript 3 (AS3) es más que una actualización de la versión anterior. Programar AS3 implica pensar las cosas de manera un tanto distinta de AS2, de manera mucho más explícita y con conceptos más simples de manejar. Por otra parte, Flex ha traído una nueva forma de producir películas en formato SWF (el formato al que exporta Flash), al tener el programador un mayor protagonismo para hacer aplicaciones.

¿Qué necesitamos para hacer un ambiente gratuito de desarrollo en Actionscript?

Para hacer este ambiente necesitamos específicamente dos programas: el SDK de Flex y FlashDevelop. Ambos se consiguen de manera gratuita.

Flex es un programa que, como Flash, produce archivos SWF, pero en vez de tener una interfaz gráfica, se tiene una librería de componentes y un lenguaje de programación basado en XML que permite crear aplicaciones de manera muy rápida y efectiva.

Flex específicamente es un compilador de ActionScript 3 cuyo producto es un SWF. Flex también trae una librería muy poderosa de componentes que permiten hacer muy rápidamente aplicaciones para Internet en Flash y con el atractivo de las aplicaciones hechas en Flash, además de otro compilador que convierte un formato de archivo XML llamado MXML en ActionScript (y de ahí a SWF). Estos dos compiladores más la librería conforman el SDK de Flex, y están disponibles gratuitamente en la página correspondiente de Adobe: http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3

Ahora, lo importante es la parte del compilador y ActionScript 3: con Flex es posible crear proyectos de cero (sin necesidad de la librería de componentes), lo cual permite hacer juegos muy pequeños sin necesidad de Flash (aunque podría necesitarse en caso de que se quieran usar dibujos vectoriales).

Lo único que faltaría es un IDE para programar. Flex Builder es la alternativa comercial y sin duda una de las mejores, pero el programa es pag. Al estar basado en Eclipse es realmente lo mejor para programar. Una tremenda alternativa que no se queda atrás, gratuita, y la que usaremos en este post, es FlashDevelop (http://www.flashdevelop.org/community/).

¿Cómo hacemos, paso a paso, para montar este ambiente?

  1. Descargar el SDK de Flex en la página Flex 3 SDK Downloads. Lo más recomendable es ir a la parte de Stable Builds, y descargar el primer enlace debajo de la columna Adobe Flex SDK. Si estás preocupado por desarrollar únicamente con herramientas libres, puedes descargar el correspondiente a Open Source Flex SDK. El primer enlace describe con detalle la diferencia entre ambos paquetes, siendo que sólo trae código licenciado bajo la Licencia Pública de Mozilla. Si no sabes de que estoy hablando ahora, no te preocupes, simplemente descarga el primero y estarás bien.
  2. Descargar FlashDevelop. Entra a la sección de Releases, y descarga la última versión. Las versiones Final son las más recomendables, pero en este post trabajaré con la versión FlashDevelop 3.0.0 Beta7.
  3. Descomprimir el SDK de Flex con tu descompresor favorito. Para este artículo crearemos un directorio en C:\flex, y allí adentro descomprimiremos el contenido de lo que descargamos en el paso 1.
  4. Instalar FlashDevelop. Es un instalador común y corriente de Windows. Creará unos atajos de inicio.
  5. Ejecutar FlashDevelop. Al llegar a la pantalla inicial iremos a Tools -> Program Settings…. En la nueva ventana Settings nos vamos a la sección AS3Context y cambiamos la ubicación de la instalación del SDK de Flex en Flex SDK Location. Colocamos el mismo directorio donde descomprimimos el archivo del paso 3, en este caso C:\flex.

    Configuración de Flash Develop
    Configuración de Flash Develop
  6. Estamos listos. Podemos crear un proyecto nuevo en Project -> New Project. En la nueva ventana New Project escogemos un Default Project en la sección ActionScript 3, un directorio, y hacemos click en OK.

    Vista de Proyecto de FlashDevelop
    Vista de Proyecto de FlashDevelop
  7. En Project -> Test Movie podemos probar la película que genera este proyecto por defecto. Veremos una pantalla en blanco solamente, pero eso significa que a partir de ahora podremos desarrollar en ActionScript sin ningún problema.

En siguientes entregas veremos cómo se desarrollan aplicaciones con este método. La literatura recomenda por ahora es la relacionada con el Document Class de Flash y cómo trabajar con él.

Encontronazos con ActionScript 3: Creando un hola mundo

Este artículo es la parte 3 de 6 de la serie Encontronazos con ActionScript 3

0-presentacion

Siguiendo con la idea de esta serie de artículos, vamos a hacer el programa más pequeño posible en ActionScript 3 (AS3) que muestre el fundamento de la programación en este lenguaje. Considero que AS3 es una forma de programar para SWF muy superior a AS2.  Una nota aparte, creo que no hay que despreciar a AS2, pues lo seguiremos viendo durante mucho tiempo en la forma de Flash Lite u otro tipo de contenido.

Este artículo requiere tener algunas nociones de programación. Manejar ActionScript 2 es opcional.
Sigue leyendo Encontronazos con ActionScript 3: Creando un hola mundo

Encontronazos con ActionScript 3: Gráficos desde el código

Este artículo es la parte 4 de 6 de la serie Encontronazos con ActionScript 3

En este post de la serie Encontronazos con Actionscript 3 vamos a extender el sencillo Hola Mundo que hicimos en el artículo pasado para incluir gráficos. Los gráficos que vamos a hacer serán creados desde el código, por lo que serán muy sencillos.

Creo que es importante aprender cómo hacer esto para tener un arte del programador muy básico pero inmediato. Por ejemplo, es efectivo tener un rectángulo que represente un personaje mientras estamos programando, y luego reemplazar el cuadrado por el arte final. En otros casos puede ser necesario

Actionscript 3 trae herramientas de dibujo un tanto distintas a las de su versión anterior, pero su esencia no ha cambiado. Como vimos en otro artículo, todos los objetos que se pueden dibujar en pantalla son DisplayObjects. En consecuencia, todos los DisplayObjects poseen un objeto llamado graphics (de tipo Graphics), el cual contiene todas las llamadas de código que necesitaremos para dibujar. (Foto por tanakawho) Sigue leyendo Encontronazos con ActionScript 3: Gráficos desde el código

Encontronazos con ActionScript 3: Cargando gráficos y sonidos externos en tu aplicación

Este artículo es la parte 5 de 6 de la serie Encontronazos con ActionScript 3

drawing

En artículos anteriores estuvimos haciendo gráficos utilizando las primitivas de la clase Graphics que nos permite dibujar líneas, círculos, curvas, gradientes y otras figuras. Por supuesto que para tener gráficos de calidad en tu juego, vas a necesitar ilustraciones más complejas que lo que puedes hacer con ello. En este artículo aprenderás a cargar gráficos y sonidos que estén en Internet.

Debo aclarar que existe una diferencia entre cargar imágenes y sonidos e incluirlos dentro del SWF. El objetivo de este artículo es hacer un SWF que cargará imágenes y sonidos desde Internet. La alternativa es incluir estas imágenes y sonidos dentro del SWF, un proceso conocido como embed o embeber recursos. En este caso el acceso a los recursos es inmediato, aunque el tamaño del SWF va a aumentar considerablemente por contener estos archivos. (Foto por rick) Sigue leyendo Encontronazos con ActionScript 3: Cargando gráficos y sonidos externos en tu aplicación

Encontronazos con ActionScript 3: Embebiendo gráficos y sonidos en tu aplicación

Este artículo es la parte 6 de 6 de la serie Encontronazos con ActionScript 3

embed

En el artículo anterior estuvimos revisando la carga de imágenes externas a nuestra aplicación. Este método es útil y fácil para cargar estos recursos, pero en algunos casos es necesario tener a mano los recursos inmediatamente disponibles. Para ello se hace necesario incluir estas imágenes y recursos adentro del SWF compilado para agilizar el acceso a ellos. En este artículo aprenderemos cómo se hace embed, embedding o embebido de estos recursos.  (Foto por storker) Sigue leyendo Encontronazos con ActionScript 3: Embebiendo gráficos y sonidos en tu aplicación