Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1164 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  DispatchEvent en animation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DispatchEvent en animation

n°1820400
Zedlefou
In cabbage we trust !
Posté le 02-12-2008 à 04:42:03  profilanswer
 

Je voulais expliquer un peu le fonctionnement du DispatchEvent en Flash (AS2), meme si ca fonctionne quasiment pareil en AS3 et c'est meme beaucoup plus utlisé.
C'est méconnu et pourtant tellement utile ...
Pour trouver de l'aide sur le sujet, allez dans l'aide (pas POSSIBLE) dans ActionScript 2 Components Language Reference>EventDispatcher Class
 
La technique est simple :
- on initialise la classe sur un objet (un MovieClip par exemple)
- on met un écouteur d'événements
- on met un dispatchEvent qui émet l'événement écouté.
 
Exemple appliqué a une animation :
Prennons une animation divisé en plusieurs sequences. Je parle ici de sequences comme dans un film et non pas des sequences Flash qui sont caca et qu'il ne faut pas utiliser.
 
Mettons que ces sequences soient reparties dans des clips.
seq1_mc
seq2_mc
etc ...
 
Et bien voici un moyen tres simple de les jouer a la suite tout en etant capable de changer le contenu, la duree de chaque clip, ou meme d'intercaller de nouveau clips et d'en enlever.
On importe la classe
import mx.events.EventDispatcher;
 
on l'initialise sur _global qu'on va utiliser pour tout, c'est plus simple
EventDispatcher.initialize(_global);
 
On determine une variable qui va permettre de savoir ou en est l'animation
_global.stepNum = 1;
 
On cree l'objet qui va recevoir les evenements
_global.evli = new Object();
 
On declare un ecouteur qui appel la fonction "step1" sur l'objet evli
_global.addEventListener("step1", _global.evli);
 
On definit la fonction step1
_global.evli.step1 = function (evt){
        // on rend invisible le clip precedent
 seq1_mc.gotoAndStop(1);
        // on joue le suivant
 seq2_mc.play();
        // on incremente pour signaler qu'on est a l'etape suivante
 _global.stepNum++;
}
 
Pour continuer, il suffit de definir les fonctions step2, step3 etc ... et de rajouter les écouteurs idoines.
 
Ensuite dans vos clips, la premiere image doit etre vide ici ( mais vous pouvez jouer sur la propriete _visible) et avoir un stop().
La derniere image contient
stop();
On envoi un evenement sur _global pour dire que l'etape actuelle est fini et qu'il faut passer a la suivante.
_global.dispatchEvent({type:"step"+_global.stepNum});
 
Et c'est tout.
 
Moi je l'utilise surtout pour ce genre de choses, signaler la fin d'un script ou d'une anime.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
mood
Publicité
Posté le 02-12-2008 à 04:42:03  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  DispatchEvent en animation

 

Sujets relatifs
Menu déroulant passe sous animation Flash (sous IE)liens html sous animation inactif
Animation flash qui passe au dessus de mon menu[Flash] Comment transformer un objet 3D en animation flash ?
Animation flash : ça marche chez vous ?Chargement d'une animation flash en fonction de l'heure
animation sur flashRedirection html après animation flash récupérée
appliquer sur une animation une symétrie par rapport à l'axe verticaleanimation flash et dreamweaver
Plus de sujets relatifs à : DispatchEvent en animation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR