Decíamos hace un par de meses que finalmente, Flash movía ficha hacia HTML5. Pues bien: Flash CS6 está a punto de salir y la cosa ya está plenamente definida, tal y como podemos ver en el siguiente vídeo:
Primero, la mala noticia: olvídate de programar en ActionScript y que funcione en JavaScript: ambos lenguajes son primos hermanos, pero mucha de la magia que se oculta en la máquina virtual de Flash, hoy por hoy, ni existe de forma nativa en JavaScript ni tendría sentido empaquetarla en forma de bibliotecas JavaScript. Fin de la historia. Flash contará con un método para poder teclear código JavaScript desde Flash pero, así entre nosotros, es un parche bastante horroroso.
Una vez dicho esto, ¿para qué va a servir Flash en la creación de contenido HTML5? (dos aclaraciones: la primera, que entendemos por contenido HTML5, básicamente, animación, interacción y sonido en canvas
; la segunda, que todo esto se basa, como comentan en el vídeo y comentábamos en nuestra anterior entrada sobre el tema, en CreateJS, una suite de bibliotecas JavaScript de código abierto y que, de hecho, pueden usarse sin tocar para nada Flash).
Repasando y resumiendo el vídeo:
- Una de las principales gracias de Flash (la herramienta) es que una buena forma de empaquetar recursos (imágenes bitmap y vectoriales y sonido, principalmente) en un archivo de forma que luego podamos acceder a esos recursos desde un lenguaje de programación (ActionScript, en sus diferentes encarnaciones) y manipularlos de manera sencilla. Flash CS6 va a ser una buena forma de empaquetar esos mismos recursos en un archivo de forma que luego podamos acceder a ellos desde un lenguaje de programación. El cambio es que a ActionSript le va a salir un rival: JavaScript. En vez de un archivo HTML que cargue una película swf tendremos un HTML que cargue unos cuantos JavaScripts que crearán un canvas equivalente (en la medida de lo posible, que es bastante, por lo que parece) al swf.
- Las animaciones Flash sin programación se exportarán directamente, con tweens y sonido y con carga dinámica de recursos, sin problemas. Y si usamos fragmentos muy básicos de ActionScript para, por ejemplo, poner nuestras animaciones en bucle, hacerlo en JavaScript desde dentro de Flash será bastante cutre (como ya decía antes) pero factible (de hecho, viendo cómo funciona en el vídeo, imagino que en nada habrá pequeñas bibliotecas de código que reproduzcan la mayoría de acciones básicas ActionScript y me permitiré apostar a que Flash CS7 nos traerá un soporte para JavaScript similar al actual soporte para programar en ActionScript en CS5: digno pero no espectacular). Flash hoy no acaba de ser un gran IDE para ActionScript (ese papel lo juega Flex) y, parece lógico, Flash no quiere ser un IDE JavaScript.
- Los símbolos de nuestra película Flash serán accesibles desde JavaScript de manera sencilla. Esto permitirá (en principio y siempre según el vídeo) que ilustradores y animadores trabajen con un .fla desde Flash y irselo pasando, versión a versión, al desarrollador de turno para que este vaya haciendo su parte. Y, si desde el lado Flash no se cambian los nombres de los símbolos, debería poder substituir una versión del archivo exportado por otra más reciente sin más problemas.
- Hay un esfuerzo importante por llegar a un equilibrio entre tamaños de archivo reducidos y código legible. Naturalmente, el HTML y JavaScript van a pesar más que el swf equivalente (pensad que hay que transmitir cada vez un montón de cosas que normalmente están en la máquina virtual de Flash, que hemos descargado una sola vez). Adobe albergará las bibliotecas JS en una CDN de manera que podamos rentabilizar cachés, pero no va a ser lo mismo. De la misma forma, el rendimiento no va a ser el mismo que un .swf, pero parece que la cosa es digna y siempre contamos con los esfuerzos de los desarrolladores de navegadores por mejorar el funcionamiento de JavaScript…
Y eso parece todo, de momento. Me atrae el pragmatismo que parece exhibir Adobe: no han intentado resolver todo el programa a costa de grandes montañas de «código spaghetti» (asumiendo las limitaciones actuales de Flash como IDE, para comenzar) y asumen que esto es una 1.0 que va a tener que mejorar deprisa si no quieren que surja un aspirante a su corona. Un muy buen (aunque tardío) primer paso, en mi opinión.
Los que estéis interesados en el tema deberías seguir por el CreateJS Developer Center que ya hay en adobe.com, que ya contiene algunos recursos y que, esperemos, crecerá notablemente en los próximos meses.