Jul 6, 2008
Es sabido que en Flash Player no se puede utilizar el botón derecho del mouse de forma “propietaria”. Con dicho botón se activa el menú contextual, y aunque se puede modificar, como mínimo encontramos las opciones Configuración y Acerca de Adobe Flash Player 9…
Pues navegando por Google Code me he encontrado un proyecto llamado Custom-context-menu que nos permite utilizar a nuestro antojo el botón derecho. Para ello combina javascript y flash de una manera muy ingeniosa. Básicamente el hack consiste en:
- Con javascript, capturar el click derecho en HTML antes que llegue al swf
- Una vez capturado el evento, informar al swf mediante ExternalInterface
- Crear una función en ActionScript que responda a la llamada de ExternalInterface
Se puede ver un ejemplo aquí.
Aunque puede ser un recurso muy útil, hay que tener en cuenta los siguientes inconvenientes:
- Funciona en la mayoría de navegadores/so, pero no en todos
- Antes de tener el evento en AS, recorre un ciclo de llamadas entre el swf y el html, con lo que el rendimiento es mucho peor que una llamada nativa
- En el menú contextual se encuentran las opciones de configuración del Flash Player, y estaríamos quitándoselas al usuario
Aún así, en casos específicos en los que sería muy importante tener este botón habilitado, es una gran solución y no está de más conocerla.
Jun 16, 2008
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
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
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
Apr 5, 2008
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
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
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:
-
this.stage.addEventListener(MouseEvent.CLICK, click);
-
private function click(e:MouseEvent):void
-
{
-
trace("Click en", e.target);
-
}
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 »
Feb 16, 2008
La clase MovieClip de AS3 tiene un método indocumentado llamado addFrameScript. Este método nos permite asociar una función a un número de frame. Esto significa que gracias a él podemos tener código en un punto concreto de nuestro timeline sin necesidad de codificar en Flash.
Su firma es:
-
public function addFrameScript(frame:int, func:Function):void;
Continuar leyendo »
Feb 14, 2008
Lo prometido es deuda, y aunque he tardado bastante, aquí está la tercera entrega de esta serie. Está llena de ejemplos, todos con el código fuente para descargar y comentando.
Vamos a jugar!!
Continuar leyendo »
Jan 27, 2008
Ahora que ya sabemos cómo funciona el color en un pixel, vamos a ver la clase clave para manipularlos: BitmapData, y por extensión, la clase Bitmap, ya que funcionan en conjunto.
Nota: Sino leíste la primera parte de la serie, te recomiendo que le eches un vistazo antes de seguir.
Continuar leyendo »