Sep 19, 2009

Medidas y resoluciones en Flash

Está en la naturaleza del html que su contenido se ajuste a las medidas del navegador, reposicionando el contenido automáticamente y generando scrolls cuando éste supera unas medidas mínimas. Un swf, por el contrario, simplemente es un objeto embebido en un html con unas dimensiones y una posición fija por defecto. Cualquier comportamiento extra que deba adoptar un swf dentro del navegador para visualizarse correctamente recae sobre el programador.

Desde el punto de vista de Flex, esto no supone un gran problema ya que por defecto el framework está dotado de un sistema que permite crear una interfaz líquida con muy poco esfuerzo. Pero si hablamos de Flash, no existe un mecanismo que nos ayude a adaptar nuestra película a cualquier resolución.

Continuar leyendo »

Jan 18, 2009

Envío de imágenes y datos con AS3

En el anterior post, en el apartado El envío de la postal, comentaba que parte del desarrollo consistía en enviar una imagen y distintas variables de Flash al servidor, pero que en AS3 no había una forma sencilla de hacer un envío multipart y habíamos recurrido a la potente librería as3httpclientlib para conseguirlo.

A pesar de que dicha librería funciona perfectamente, lo hace todo mediante sockets, cosa que añade un grado (o varios, según el caso) de dificultad. Como para el proyecto de IKEA no íbamos sobrados de tiempo, no le di más vueltas y la utilicé, pero me quedó la espinita de si no había maneras más sencillas de hacerlo, y desde entonces he estado mirando todo lo relacionado con el tema de envíos desde Flash. Este artículo recoge y explica distintas soluciones que he ido encontrando.

Empezaremos con el caso más sencillo, que es enviar una imagen desde Flash al servidor.

Continuar leyendo »

Nov 10, 2008

Consejos para trabajar con Flash y AS3 en equipo

Al contrario que en el 2007, donde todo lo que hice en CS3 y AS3 fue en solitario, durante este año he trabajado en varios proyectos en equipo, tanto con compañeros de mi agencia como estudios o freelances. En general, me considero bastante flexible a la hora de trabajar con otros programadores y no intento imponer nada (y más en el mundillo Flash, donde hay mil maneras distintas de alcanzar un objetivo), pero aún así, he llegado a la conclusión de que hacen falta una serie de “buenas prácticas” para que el proceso no sea un sufrimiento para el resto.

Los puntos que voy a explicar me parecen igual de válidos si se trabaja solo, pero obviamente la repercusión es mucho menor porque no afecta a nadie más. Y con trabajar en equipo no me refiero sólo a dos o más personas simultáneamente, sino también aquellos desarrollos que un día empieza uno y luego ha de continuar otro.

Continuar leyendo »

Jul 27, 2008

EnterFrame vs Timer (I)

Hace ya varios años, en una época en la que la web estaba poblada de páginas estáticas y todo el movimiento se reducía a los gif, un programa llamado FutureSplash consiguió sorprender a todos por su increíble capacidad para la animación.

Emulando el sistema de cinematografía, basado en proyectar fotogramas de forma rápida y sucesiva para lograr la sensación de movimiento, FutureSplash incorporaba una linea de tiempo en la que se podía dibujar frame a frame para reproducir luego la película.

Un año más tarde, ese revolucionario programa fue adquirido por Macromedia y nació Flash 1.0, para acabar evolucionando actualmente en Flash CS3, de la mano de Adobe. Y por sorprendente que parezca, nueve versiones después, la filosofía para generar animación se ha mantenido intacta.

Al margen de la animación tradicional en linea de tiempo, la otra forma de generar animación es mediante código, y en ActionScript sí que ha ido evolucionando el tema:

  • En Flash 5 se introdujo el archiconocido enterFrame.
  • En Flash MX nos obsequiaron con setInterval (lo recuerdo como una gran novedad).
  • Y ya en AS3, se ha apostado por la clase Timer como sucesora de setInterval.

Así pues, en Flash 5, para animar mediante código se utilizaba enterFrame, pero con la introducción de setInterval la comunidad empezó a dividirse entre partidarios y detractores de uno y otro sistema. Es fácil encontrar discusiones en blogs, foros y listas sobre este tema, y personalmente he perdido la cuenta de cuantas veces he debatido sobre ello.

En este artículo vamos a estudiar la clase Timer (setInterval está desaconsejada, pero la lógica se puede aplicar igualmente) y el evento enterFrame, con la esperanza de poder definir cuándo es mejor usar una u otra.

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 »

Mar 13, 2008

Adobe AIR para clientes y abuelas

Hace menos de un mes que Adobe ha lanzado oficialmente AIR y todo el mundo se ha hecho eco de la noticia (incluso diarios como El País).

Con 2 años de desarrollo a las espaldas y 3 versiones Beta, cualquier persona que se mueva en el mundillo web sabe de que va el tema. Sin embargo, AIR no afectará sólo a los desarrolladores, sino que va a suponer también un gran impacto en los usuarios.

Si has estado de viaje en otro planeta, esperas que tu cliente entienda porqué necesita invertir en AIR, o quieres que tu abuela no se sienta desplazada en las comidas, este artículo es para ti.

Continuar leyendo »

Feb 14, 2008

Jugando con pixels (III)

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

Jugando con pixels (II)

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 »

Jan 20, 2008

Jugando con pixels (I)

Empieza aquí una nueva serie de artículos, esta vez dedicados a la programación bitmap, y más concretamente, enfocados en la manipulación de imágenes a nivel de píxel. En la categoría Lab encontrarás una muestra de las cosas que se pueden hacer jugando con pixels.

La programación bitmap es uno de los temas más extensos y complejos que se pueden encontrar en AS3. Por otro lado, también es uno de los temas más apasionantes de este lenguaje, y merece la pena invertir horas en su aprendizaje.

El mayor problema que me encontré cuando decidí aprender sobre esta temática es la poca información que existe al respecto (poca en inglés, y prácticamente nula en español), así que al final, la mayoría de cosas que aprendí fue en base a experimentación y a invertir días enteros intentando descifrar códigos que encontraba por la red. Espero con estos artículos cubrir un poco el vacío existente en este campo. Vamos allá.

Nota: antes de sumergirnos en el código, es muy importante comprender cómo se componen las imágenes y los pixels, por eso he preferido dedicar este primer capítulo a la teoría de estos temas.

Continuar leyendo »

Dec 21, 2007

Programando en AS3 desde Flash CS3 (III)

Vamos con el tercer y último artículo de la serie, dedicado a la forma en que se utilizan los objetos que tenemos en la librería de Flash.

Este artículo es menos técnico que los anteriores, pero dado que el cambio es bastante significativo (ya no se utiliza más attachMovie) merece la pena tratarlo.

Continuar leyendo »