Archivo de la categoría ‘Actionscript 3’

qrcode link
12 de diciembre de 2008

Tipos Enumerados en AS3(II)

Siguiendo con el artículo Tipos Enumerados en AS3, vamos a dar una solución correcta al problema de la herencia desde nuestra nueva clase Enum.

Como vimos, es necesario bloquear la creación de las clases mediante un bloque estático después de que se definan las constantes de nuestro enumerado. Dado que el bloqueo se realiza desde el constructor de Enum hay que utilizar un sistema que nos permita bloquear selectivamente las clases hijas según su tipo. Para esto podemos utilizar una lista, en la que iremos agregando los tipos de clases bloqueadas, y en el constructor de Enum verificamos su existencia. Así Enum tendría el siguiente código:

(más…)

qrcode link
19 de noviembre de 2008

Tipos Enumerados en AS3 (I)

En este pequeño artículo vamos a describir un método para la emulación de tipos enumerados (“enums“) en AS3. Los tipos enumerados son de uso habitual en Java, C++ o C#. Básicamente son un tipo de dato, muchas veces definido por el programador, compuesto por una serie de constantes llamadas enumerados. Para ampliar información, se puede consultar el artículo de Wikipedia sobre los tipos enumerados (en inglés).

(más…)

qrcode link
20 de marzo de 2008

Usando Actionscript 3

Llevo unos días probando AS3 con Flex SDK y Flash CS3. Ya iba siendo hora. He aprovechado las vacaciones para echarle un vistazo y después de unos días de uso encuentro importantes mejoras con respecto a AS2:

  • La principal y más importante es la posibilidad de crear instancias de MovieClip (y derivados) en tiempo de ejecución sin tener que hacer malabarismos.
  • Usa espacios de nombres (packages) para las clases.
  • Está disponible un compilador externo, de manera que no hay que depender más de herramientas de terceros para generar nuestros SWF.
  • Ya no es necesario esperar al evento “load” para acceder a las propiedades de una clase asociada a un MovieClip de la biblioteca.
  • Incluye la clase Event de forma nativa.

Es lógico creer que AS3 permita cierta flexibilidad, ya que va a ser utilizado por diseñadores con pocos conocimientos de programación. Sin embargo creo que es mucho más sano el trabajo de cualquiera, aunque sea mínimo y casual, si se hace con un lenguaje bien estructurado, y con una lógica bien definida. Se están ganado puntos para el futuro.

He aquí una lista de los problemas principales a nivel estructural del lenguaje. Según mi parecer, claro:

  • AS3 no tiene clases abstractas, ni métodos abstractos o virtuales.
  • AS3 no ofrece herencia de los miembros estáticos.
  • AS3 sigue teniendo tipado débil. Permite acceder a propiedades”fantasmas” de los objetos “Object”
  • AS3 no admite sobrecargas de métodos. Esto es especialmente ruinoso, porque hay que hacer uso de constructores que acepten “Object” como parámetros, o peor aún, el tipo “*”. Se puede también hacer uso de los valores por defecto de los parámetros, aunque es muy limitado.
  • AS3 a veces asigna por referencia y otras por copia. No queda muy claro cuándo usa qué.
  • AS3 no soporta constructores privados o protegidos. Adiós, Singleton, Adiós.

Por otro lado tenemos pequeños detalles o bugs. No son problemas estructurales, sino de cómo se han creado las clases que forman las bibliotecas de Flash o de fallos del reproductor:

  • Para acceder a los eventos de un objeto Loader, hay que “escuchar” los eventos de un atributo suyo (contentLoaderInfo), a persar de que Loader hereda de EventDispatcher.
  • Los delegados han sido eliminados, y han ampliado el funcionamiento de los eventos, enterrando la posibilidad de pasar delegados como parámetros de funciones, y pasar parámetros a los delegados. (Suena raro, pero es así)
  • Hay un bug en la propiedad filters de un MovieClip. Al crearse el MovieClip es un array vacío, que debería permitir agregar nuevos filtros con “push”, sin embargo no lo permite. Debe asignarse a una nueva matriz para que funcione correctamente
  • Para dibujar algo sobre en Sprite tienes que acceder a una propiedad “graphics”, que en realidad no es otra cosa que una biblioteca de funciones para poder dibujar. Quizá hubiera sido mejor integrar esos métodos en la clase Sprite, y/o hacerlos estáticos.

PD: La lista irá creciendo según vaya encontrando bondades y defectos.

qrcode link
18 de marzo de 2008

Actionscript 3 IDE con Eclipse

He aquí un método para poder programar en AS3 utilizando Eclipse como IDE. No solo sirve para editar ficheros, sino que podremos compilar a ficheros SWF sin tener que utilizar el IDE de Flash. Hay varias maneras de conseguirlo, pero la que vemos aquí es la que he considerado más sencilla, integrar el Flex 3 SDK con Eclipse (vía Jake Hilton).
Actualización: Con la aparición del proyecto AXDT, es recomendable su instalación en vez de ASDT. (más…)

  • qrcode link