Il y a 18 mois, j’avais évoqué l’extension Swiffy de Google comme étant une solution efficace pour exporter des animations HTML5 à partir de Flash. Les choses ont un peu évolué depuis : l’extension n’ayant pas été mise à jour, elle n’est plus compatible avec les dernières versions de Flash Pro, et il faut donc garder une vieille version de Flash Pro CS6 sous le coude juste pour pouvoir exporter en HTML5. Peu pratique, sans parler du risque qu’un beau jour, Swiffy finisse par ne plus fonctionner du tout.
Je viens de découvrir la nouvelle version de Flash Pro sortie fin juin (Flash Professional CC 2014, de son petit nom). Adobe s’est apparemment pas mal réveillé et s’est finalement décidé à transformer Flash Pro en un logiciel de création d’animations multiformat : SWF évidemment, mais en y ajoutant un large support du standard HTML5 et un support un peu plus expérimental de WebGL.
Concrètement, lors de la création d’un nouveau projet, on a maintenant le choix entre ActionScript 3 (le format Flash standard), Canvas HTML5 et WebGL. Si on choisit HTML5 ou WebGL, les animations sont ensuite créées nativement dans ces formats, mais avec le workflow et les outils habituels de Flash. Les rares outils qui ne sont pas supportés sont désactivés (par exemple, 3D Rotation Tool pour HTML5 et WebGL, ou toute la partie texte pour WebGL) pour éviter tout problème.
Pour convertir un document Flash existant en HTML5 ou WebGL, il y a deux solutions :
- soit copier/coller tous les calques du fichier FLA d’origine vers un nouveau document HTML5 Canvas / WebGL
- soit utiliser les scripts JSFL fournis (Commands > Convert HTML5 Canvas from AS3 document formats ou Commands > Convert WebGL (Preview) Canvas from AS3 document formats).
La conversion semble donner de bons résultats pour des animations pures. Le rendu des éléments textuels est généralement plus problématique : pas d’antialiasing et une seule mise en forme possible par champ. Quelques autres fonctions ne sont pas supportés du tout (Blend mode en overlay, lignes en pointillés, transformations 3D…). Le cas échéant, tout script AS3 est désactivé et devra être converti en Javascript a la main.
Avec mon exemple habituel, en HTML5 je note juste la perte d’antialiasing sur le masque de l’image du haut, et bizarrement un saut dans l’animation du nuage de poussière (alors que la conversion avec l’ancienne solution Adobe, CreateJS, était nickel). En WebGL, le masque de l’image du haut est complètement absent et le masque de la fumée verte du chaudron est affiché de manière incorrecte par moment. Je ne suis pas en mesure de vous montrer le résultat puisque l’animation a besoin d’un serveur web pour être affiché (intégré à Flash Pro, donc l’animation ne fonctionne plus si l’application est fermée)… « support expérimental », ils avaient prévenu !
A noter aussi qu’Edge Animate, la solution d’animation 100% web d’Adobe que j’avais évoqué à plusieurs reprises par le passé (ici et ici), continue de faire son petit bonhomme de chemin et la version 2014 dispose de fonctionnalités très intéressantes, comme la prise en charge des fichiers vidéo HTML5, l’importation de spritesheets, le copier/coller d’images SVG depuis Illustrator, la mise à l’échelle réactive (responsive), les trajectoires de mouvement (similaires à Flash), etc.