Utilisez le Flash Player “debug” d’adobe !

28 avril 2008 – 9:39

Flash 9 et l'actionscript 3 sont omniprésent sur internet, la majorité des nouveaux sites sont en AS 3 et ces derniers ne sont malheureusement pas soumis à un contrôle de qualité suffisant !

Il suffit de visiter quelques sites référencé sur The FWA avec le flash player debug pour se rendre compte qu'il reste des erreurs sur la plupart d'entre-eux. Pourtant ces sites sont développés par des agences professionnels et vendu à des clients comme produit fini !

C'est pourquoi j'ai décidé de créer une nouvelle catégorie : "Debug !" dans laquelle je posterai des sites qui n'ont pas été testé et/ou débuggé suffisamment avant leur passage en production. Une façon simple de peut-être faire réagir les développeurs.

[AS3] Fullscreen avec StageDisplayState.FULL_SCREEN

8 mars 2008 – 3:47

Pour la réalisation d'un cd-rom en Flash j'avais besoin de passer en plein-écran, ce qui se fait très facilement via fscommand. Cependant je viens de découvrir la méthode displayState de la classe Stage qui permet de choisir entre un état "NORMAL" ou "FULL_SCREEN" pour le flash player.

fscommand("fullscreen", "true");

Au début j'ai pensé que c'était pareil, rien de spécial, mais j'ai vite remarqué qu'il y a un détail subtile qui me fait dire que vous pouvez dire adieu à fscommand pour faire du plein-écran. Avec fscommand, lorsque vous exécutez votre swf, vous verrez que pendant une fraction de seconde le flash est ouvert à sa taille "normal" puis qu'il passe en "fullscreen". Ce qui a pour conséquence que souvent on attribue un écouteur à la scène pour afficher le contenu une fois que le player est passé en plein-écran. Mais si vous utilisez stage.displayState le mode plein écran est instantané à l'exécution du swf. Si vous tracez directement le stage.stageWidth et stage.stageHeight ça renverra la taille de l'écran.

stage.align = StageAlign.TOP_LEFT;
stage.displayState = StageDisplayState.FULL_SCREEN;
stage.scaleMode = StageScaleMode.NO_SCALE;
 
var output:TextField = new TextField();
output.text = stage.stageWidth+" * "+stage.stageHeight;
addChild(output);

Vous pouvez copier l'exemple ci-dessus d'un fla vide et tester le swf pour voir le résultat.
Dans le même genre il y a aussi :

  • une classe FullScreenEvent qui s'occupe de signaler le passage en plein-écran.
  • deux propriétés stage.fullScreenWidth et stage.fullScreenHeight qui renvoient la taille de l'écran lorsque celui-ci passe en plein-écran.
  • la possibilité de passer une zone précise du Flash en plein-écran avec stage.fullSceenSourceRect (j'ai pas encore testé).

ATTENTION que les deux derniers points ne sont disponible qu'à partir de la troisième mise à jour du flashplayer 9

Conclusion, si vous désirez passer en plein-écran, pensez à StageDisplayStage.FULL_SCREEN et oubliez fscommand.

[AS2->AS3] MouseEvent, où est passé onReleaseOutside ?

28 février 2008 – 12:09

En actionscript 3, lorsque vous désirez interagir avec la souris vous devez passer par les écouteurs "MouseEvent". J'avais déjà posté un petit aide mémoire sur la différence de synthaxe entre un bouton en actionscript 2 et 3. Mais on peut se rendre compte que dans les évènements MouseEvent il n'y a pas d'équivalent au "onReleaseOutside" qu'on utilisait en AS 2.

La solution serait donc d'écouter l'évènement "MOUSE_UP" sur le stage.

Exemple :

button.addEventListener(MouseEvent.MOUSE_DOWN, handlerMouseDown);
function handlerMouseDown(e:MouseEvent):void {
 stage.addEventListener(MouseEvent.MOUSE_UP, handlerMouseUp);
 // onPress
}
function handlerMouseUp(e:MouseEvent):void {
 stage.removeEventListener(MouseEvent.MOUSE_UP, handlerMouseUp);
 // onReleaseOutside
}

Dans l'exemple ci-dessous le "onReleaseOutside" s'exécutera même si la souris se trouve sur le bouton. Mais vous pouvez vérifier à l'aide du paramètre MouseEvent la cible sur laquelle se trouvait la souris au "MOUSE_UP".

function handlerMouseUp(e:MouseEvent):void {
 stage.removeEventListener(MouseEvent.MOUSE_UP, handlerMouseUp);
 if(e.target.name != "button"){
 	// onReleaseOutside
 }
}

FITC Beyond the Knowledge: The Art of Playing - Erik Natzke

27 février 2008 – 1:23

Erik Natzke a clôturé en beauté cette première édition du FITC en Europe. Son travail est toujours aussi impressionnant, j'avais déjà pu assister à sa présentation à Paris lors du Web Flash Festival 2007 au centre Pompidou. Pour résumé, Erik Natzke est d'abord un graphiste... qui un jour s'est demandé si il n'y avait pas un moyen plus simple d'utiliser flash autrement qu'en faisant des fichiers de 58 calques sur 790 frames le tout animé !

Crazy Timeline Erik Natzke

Du coup il a commencé à réaliser des moteurs physiques et d'autres systèmes de représentations graphiques aléatoires. Le résultat est final est bluffant et on peut se demander si il retouche ses images, mais à cette question Erik est très catégorique : "this is actionscript ONLY !" (wtf!)

Erik Natzke Workshop

Sans doute l'un des développeur/designer qui m'inspire le plus. Surtout en ce qui concerne l'utilisation de photographie pour donner une forme de direction à la création.

Et comme si ce n'était pas suffisant voici les sources (voir le tutorial vidéo).

Je profite de ce dernier article sur le FITC d'Amsterdam pour remercier les organisateurs et conférenciers qui ont animés ce festival avec des présentations de qualités et une ouverture d'esprit comme on aimerait en avoir dans notre travail au quotidien. La logistique était parfaite, aucun retard dans les horaires, des volontaires souriants et efficaces dans chacune de leurs tâches. Encore Bravo ! En espérant que vous reviendrez en Europe pour une prochaine édition !

Photos (ADN)

FITC The Circle - Jared Tarbell

27 février 2008 – 0:08

Une bonne surprise pour cette seconde journée avec le présentation "The Circle". Jared Tarbell est très connu auprès de la communauté Flash via son site levitated qui contient ses différentes expériences graphiques. On peut penser à Natzke ou Davis lorsqu'on voit son travail mais son approche n'est pas similaire, il est, à mon humble avis, plus "matheux" et moins "aléatoire".

FITC The Circle - Jared Tarbell

Sa présentation est basé sur la géométrie et plus précisément sur le cercle, tout le monde est resté sans un mot, c'était juste beau de voir différentes expérimentations aléatoires basé sur le cercle et évoluant au rythme d'une musique d'ambiance. Les nouveaux exemples en actionscript 3 permettent d'aller encore plus loin grâce à l'AVM 2.

Jared a mis toute sa présentation en ligne avec les sources !

FITC The Circle - Jared Tarbell - inspirations

FITC New Works - Joshua Davis

26 février 2008 – 10:07

Pour clôturer cette première journée, j'ai préféré assister à une conférence plus "créative" que "technique", parce qu'après une journée de Papervision3D, Actionscript 4, Système de particules et Red 5... on est un peu dans le gaz. Et je ne le regrette pas, Joshua Davis a vraiment réveillé tout le monde avec un humour bien prononcé et des réalisations hybrides mélange d'actionscript et de graphisme statique. Toute la présentation a été une forme de combat entre le conférencier, professeur de design et l'artiste qui partait soudainement dans des trips bien à lui à propos du Japon, des motifs sur les carpettes etc. Une atmosphère impossible à décrire mais je pourrais résumer en une phrase :

lorsque vous sortez de cette conférence vous avez juste envie de bosser pour vous, à l'inspiration sans aucune formes de contraintes.

http://www.joshuadavis.com/workshop

FITC Kaboom!!! Flash Pyrotechnics - Seb Lee-Delisle

26 février 2008 – 9:40

Seb Lee-Delisle a réalisé une excellente présentation à ce FITC, je ne connaissais rien du gars à part une description de lui même sur son blog. Il a présenté à partir d'exemples (téléchargeable) comment facilement créer et manipuler des systèmes de particules en actionscript. On a pu sentir qu'on avait devant nous un véritable passionné du sujet... fou rire après chaque phrase, beaucoup d'humour et pourtant la conférence restait tout de même assez technique. De la création de particules aléatoire à la détection de mouvement via une caméra pour réaliser des installations interactive, tout a été intéressant et c'est parfaitement enchainé de l'exemple simple au plus complexe.

Bref que du plaisir !

A voir :
Pluginmedia (site qui a servit d'exemple pendant la présentation)

FITC Actionscript 4 ? - Colin Moock

26 février 2008 – 2:06

La conférence de Colin Moock intitué "Actionscript 4 ?" a bien entendu fait salle pleine. Cependant il a pris la peine de souligner que les personnes qui suivent de près l'évolution d'ECMAScript 4 étaient déjà au courant de tout ce qu'il allait dire et qu'il ne parlerait absolument pas de l'évolution du FlashPlayer, sa conférence concerne essentiellement les changements concernant le coeur du langage et la synthaxe. En gros Colin Moock, nous a fait comprendre que l'actionscript 4 serait simplement une mise à jour qui implémenterait dans actionscript ce qui lui manque par rapport aux normes ECMAScript 4.

La présentation est disponible online

De ce que j'ai retenu :

  • On pourra donner plusieurs types à une variable : var x:[int,string];
  • Array Type "describes the structure of an array" et Record Type " describes a structure of a set of objects" (réellement intéressant lorsqu'ils sont mis dans des cas concrets)
  • Le mot-clé "let"qui remplace "var" pour des variables "plus local que local" comme dit Colin Moock.
  • L'argument "rest"peut-être typé
  • L'opérateur "like" permet de rester "rétro-compatible"
  • Mot-clé "cast"qui permet de typer une variable comme : food cast Apple au lieu de Apple(food);
  • Pouvoir typer les "cases" d'un switch

Bref un tas de nouveautés qui ne sont pas toutes révolutionnaires mais qui sont les bienvenues.

FITC Interactive Experience with Papervision3D - Carlos Ulloa

26 février 2008 – 1:53

Deuxième session de cette première journée, Carlos Ulloa nous présente deux projets sur lequel il a bossé avec Papervision3D

.FITC Interactive Experience with Papervision3D - Carlos Ulloa 01

D'abord pour Sony avec le système de navigation que vous pouvez voir sur le site officiel de Sony Bravia

Il a structuré sa présentation en expliquant sa méthode de travail point par point :

  • Navigation
  • Interaction clavier et souris
  • Interaction et animation en temps réel
  • Multiple scènes 3D pour simuler un environnement complexe
  • Caroussel 3D pour faire tourner les objets

On notera qu'il travail de manière méticuleuse et ne laisse rien au hasard. D'un autre côté on peut constater que le temps de réalisation est proportionnel à la qualité du travail.

FITC Interactive Experience with Papervision3D - Carlos Ulloa 02

FITC Interactive Experience with Papervision3D - Carlos Ulloa 03

FITC Interactive Experience with Papervision3D - Carlos Ulloa 03

Ce dernier slide reste très intéressant en ce qui concerne la faisabilité et les estimations de temps pour le projet.

Le second projet que Carlos Ulloa a présenté était très intéressant voir bluffant... Il s'agit d'un genre de blog où chaque articles est un cuble en 3D qui peut s'ouvrir pour dévoiler son contenu. Vraiment intéressant, mais on a vite compris que cela ne se réalise pas comme ça lorsqu'il montre le temps qu'il a passé sur ce projet :

18 semaines
340 classes

ouf... ok on sait ce qu'il nous reste à faire...

FITC Paperworld : A new multiplayer experience - John Grden

25 février 2008 – 19:37

Premier jour, première conférence après la keynote d'Adobe. Paperworld est une démonstration d'un framework multi-utilisateur basé sur le serveur Red 5 et utilisant Papervision3D pour la représentation des différents éléments graphiques. La conférence était assez technique et John Grden a surtout expliqué le fonctionnement de l'application, le côté client, autrement dit le flashplayer s'occupe essentiellement du rendu 3D et de tout ce qui se rapporte aux éléments avec lequel interagit l'utilisateur. Le côté serveur a deux responsabilités : gérer les changements des utilisateurs et transmettre l'état à tous les clients. Le serveur s'occupe aussi deux objets principaux : l'objet client avec toutes les informations concernant l'utilisateur ainsi que l'objet avatar qui est en charge de la représentation graphique du client.

FITC Programme Amsterdam 2008

Cependant on reste un peu perplexe lorsqu'on découvre que le côté serveur calcul les changements de positions des avatars en 3D pour tous les clients...

La démonstration ne montrait que deux clients connectés en local, c'est un peu optimiste d'imaginer ça en réseau avec une centaine d'utilisateurs.

FITC Paperworld : A new multiplayer experience - John Grden 01

Maintenant faut bien admettre qu'ils ont réalisé quelque chose qui est très prometteur et surtout que personne n'a réalisé jusque là. On est en présence d'un véritable environnement 3D multi-utilisateur en Flash.

FITC Emakina team