Chargement d’une image et affichage en fondu

Charger une image et l'afficher en fondu en ActionScript 3 (AS3)

Le chargement de l'image et son affichage, une fois le chargement terminé, sont expliqués dans ces 2 billets :
Le chargement d'images
Gérer la progression et la fin du chargement d'une image

Chargement de l'image
Actionscript:
  1. // création du conteneur de l'image
  2. var conteneurImage:Loader = new Loader();
  3. // url de l'image à charger
  4. var image:URLRequest = new URLRequest("http://www.mozbot.fr/theme/menthe/www.mozbot.fr/logo.gif");
  5. // Le chargement est terminé
  6. function onComplete(evt:Event):void
  7. {
  8.     conteneurImage.alpha = 0; //le conteneur est transparent
  9.     addChild(conteneurImage); // affichage du conteneur
  10.     myTimer.start(); //démarrage du timer
  11. }
  12. // Evénement complete
  13. conteneurImage.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

La gestion de l'affichage en fondu

Nous allons utilisé un objet Timer qui va nous permettre d'augmenter de 10% l'alpha du conteneur toutes les 200 millisecondes. L'objet Timer possède 2 arguments. Le premier permet d'indiquer la fréquence à laquelle on veut exécuter une action. Le second permet d'indiquer le nombre de fois où l'on veut exécuter cette action.
On évoquera l'événement TIMER de la classe TimerEvent afin d'exécuter en réponse la fonction onAlpha

Actionscript:
  1. // on crée un objet Timer avec en paramètres le délai puis le nombre d'événements diffusés
  2. var myTimer:Timer = new Timer( 200, 10 ); //on souhaite exécuter une action toutes les 200 millisecondes et ce, 10 fois de suite
  3. // A chaque appel du Timer (toutes les 200 millisecondes),
  4. function onAlpha( pEvt:TimerEvent ):void
  5. {
  6.     conteneurImage.alpha += 0.1; //l'alpha augmente
  7. }
  8. myTimer.addEventListener( TimerEvent.TIMER, onAlpha ); //Toutes les 200 millisecondes, le timer exécute l'événement TIMER et donc en réponse, la fonction onAlpha est exécutée.
  9. // chargement de l'image dans le conteneur
  10. conteneurImage.load(image);

Le timer ne démarre pas automatiquement, c'est pourquoi on utilise la méthode start du timer dans la fonction onComplete

;)