Jun 16, 2008

Learning ActionScript 3.0

Hace pocos días terminé de leer Learning ActionScript 3.0: A begginer’s guide.


He de reconocer que de entrada no era un libro que me llamara mucho la atención, debido principalmente al subtitulo “una guía para principiantes”. Sin embargo, me picó la curiosidad este post escrito por Lee Brimelow: The Best ActionScript Book Ever Written, en el que deja el libro por las nubes. En términos similares se expresaba Josh Tynjala (desarrollador que merece todos mis respetos) en este otro post.

Así pues, decidí darle una oportunidad y me hice con una copia. Una vez leídas sus 350 páginas, puedo entender el porqué de unas críticas tan favorables.

A continuación, mi review sobre el libro.

Continuar leyendo »

May 24, 2008

El sistema de renderizado de Flash Player

Renderizar es el proceso de generar en pantalla una imagen a partir de unos datos. El responsable de representar por pantalla todo lo que sucede en una película Flash, tanto en el escenario como en el código, es el sistema de renderizado del runtime.

Debido a que ActionScript es un lenguaje 100% visual, tener un conocimiento profundo de este proceso nos ayudará a la hora de escribir y optimizar nuestro código, y evitará que cometamos errores normalmente difíciles de detectar.

En este artículo veremos cómo funciona.

Continuar leyendo »

Apr 13, 2008

TweenMax

Pocos días después de escribir este artículo donde explicaba lo genial que es TweenLite, Jack pone a nuestra disposición TweenMax, una nueva clase que se construye sobre TweenLite agregándole nuevas funcionalidades “populares, pero no esenciales” (aunque a mi juicio, algunas se acercan más a lo esencial que a lo popular).

Entre las nuevas características encontramos:

  • Tweens con Bezier (por fin!)
  • Bezier through, un nuevo sistema en el que se definen los puntos a trazar en vez de los puntos de control de la curva. Es una idea genial, ya que es infinitamente más intuitivo. Me preguntó porqué nadie lo habrá hecho antes…
  • Se pueden pausar y reanudar las animaciones
  • Se pueden crear secuencias de animaciones
  • Se puede saltar a cualquier punto del tween
  • Se puede animar a nivel hexadecimal

Si quieres ver de todo lo que es capaz, en el site encontrarás una tabla comparativa de las clases con todas sus funcionalidades.

Y a pesar de las características añadidas, el peso sigue siendo mínimo (8kb), y la velocidad y rendimiento tan increíbles como antes.

En el artículo anterior comentaba que TweenLite tenía alguna debilidad, pero TweenMax las cubre todas. Personalmente, ahora sí puedo decir que TweenLite, junto con TweenFilterLite y TweenMax, es el mejor paquete de animación que podemos encontrar para ActionScript.

Descargar TweenMax

TweenLite

La animación por código siempre ha sido un tema estrechamente relacionado con ActionScript. Extrañamente, Macromedia nunca cuidó demasiado este campo, así que algunos programadores empezaron a trabajar en iniciativas propias para cubrir sus necesidades.

Algunas de ellas se convirtieron poco menos que en míticas. ¿Quién no recuerda a Robert Penner por sus revolucionarias librerías de Easing, o a Moses Gunesch por su FuseKit?

Con la llegada de AS2 vimos algún avance pero muy pobre, y con AS3 yo pensé que ya no haría falta recurrir a soluciones de terceros, pero estaba equivocado. Aunque es cierto que con los paquetes fl.transitions, fl.motion, fl.transitions.easing y fl.motion.easing (en los que ha trabajado Penner, por cierto) se puede crear todo tipo de animaciones, a la hora de la verdad las clases son poco prácticas, ya que la sintaxis es engorrosa, no son suficientemente intuitivas y sobretodo son muy pesadas.

Por suerte, la comunidad AS se movió bastante rápido y en el 2007 ya había disponibles varios kits de animación para AS3. La mayoría de gente optó por Tweener, entre ellos yo, pero hace cosa de 4 meses probé TweenLite y quedé encantado. Desde entonces, cuando tengo que animar por código, TweenLite es mi primera opción.

Continuar leyendo »

Mar 5, 2008

Punteros

Hace poco tuve que programar un banner en el que 20 punteros se movían aleatoriamente.

Partiendo de esta base, he pulido un poco más el movimiento, los he dotado de interactividad y he añadido un centenar. El resultado es una nueva pieza para el Lab:

Continuar leyendo »

Feb 18, 2008

Accediendo al stage antes de tiempo

En AS3 es una práctica habitual asociar eventos al stage para cogerlos globalmente. El caso más utilizado probablemente se dé con los del tipo MouseEvent. Por ejemplo, si tenemos varios objetos en pantalla, en vez de definir un evento click para cada uno de ellos, cogemos sólo el click en el escenario (global) y vemos sobre quién se está interactuando:

  1. this.stage.addEventListener(MouseEvent.CLICK, click);
  2. private function click(e:MouseEvent):void
  3. {
  4. trace("Click en", e.target);
  5. }

Pero a veces, cuando intentamos añadir un evento al stage obtenemos el siguiente error:

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

Vamos a reproducir el error.

Continuar leyendo »