Débuts en flash

Tagged:

Bon j'ai un mac alors je me la raconte avec mon environnement flash tout neuf !

En fait ça faisait un moment que ça m'intriguait le flash, mais rien n'est fait pour sous linux ... C'est un peu comme du Javascript, (tous des dérivés d'ECMAScript) Donc l'esprit de langage complètement objet, complètement dynamique est assez sympa ... Ca permet de faire du code crado, mais aussi des truc bien plus poussé qu'on en fera jamais en Java ...

Bref j'expérimente une fonction que j'avais déja trouvé en javascript ... Sur un FLVPlayer de base on voulais mettre une image en fondue dessus pour que lors de la mise en buffer on ait pas juste la première image de la video et un message (à la youtube ..)... le truc c'est qu'il faut bidouiller la propriété d'alpha si on veut pas tomber dans un schéma de timeline compliqué ... Alors on crée un calque avec la vidéo et par dessus un calque avec l'image.

Puis on va attacher un évennement a la video pour savoir quand elle est prête afin de déclancher la décrémentation de la valeur alpha...

var evtReady:Object = new Object();
evtReady.ready = function() {
    decreaseAlpha();
}
maVideo.addEventListener("ready", evtReady);

Voila le composant ma video va appeler la fonction ready de l'objet qu'on lui passe en paramètre une fois qu'il sera prêt :)

Ensuite la fonction decreaseAlpha possède une astuce par rapport a javascript ... j'utilise les setInterval mais il faut également les clearer sinon on rentre dans une boucle ou le truc il se termine jamais ... (on a testé ça sur une machine windows je vous laisse imaginer le topo de la machine qui se vautre et qui est inutilisable pendant 1 minute ...)

Bref voici comment j'ai fait cette fonction qui n'a rien de compliqué mais qui a des vertus pédagogiques j'en suis certain =)

var interval;
var decreaseAlpha = function() {
  clearInterval(interval);
  if (monImage._alpha > 0) {
    monImage._alpha--;
    interval = setInterval(decreaseAlpha, 1);
  }
}

Et voila ... C'est pas si compliqué mais bon j'ai mis le temps quand même :D

Comments

Finalement on a utilisé l'évennement playing qui est plus approprié si la video charge longtemps ...