Dans le cadre de sites,
RIA, et autres applications plus complexe, une bonne gestion des évènements permet de gagner du temps, gagner en efficacité, en maintenance et permet surtout des actions/interactions qui pourraient très bien être quasi impossible sans celle-ci.
Plusieurs classes vont être étudiées au cours de ces articles.
- La classe EventDispatcher, contenu dans le package mx.events de Macromedia.
- La classe Delegate contenu dans le package mx.utils de Macromedia
Quelques classes issues de la scène Flash. (pas mal de développeurs travaillent sur ces gestions d'évènements. Certains améliore/complète les classes de MM, d'autres refont directement tout leur package events.
Peut-être que le simple terme d'évènement ne vous dis rien. Pas d'inquietude, vous avez l'habitude des les utiliser, peut-être, sans le savoir.
Commençons par un exemple tout simple :
ActionScript Code:
mcBouton.onPress = function():Void {
//quelques actions....
}
Ce code permet d'exécuter une action quand le bouton mcBouton est pressé. Et bien au réagit à l'évènement "onPress" du MovieClip. Vous voyez… ça fait longtemps que vous utilisez des évènements…
Un autre exemple suite à un tuto réalisé sur les MotionTween de Flash Mx 2004 :
ActionScript Code:
maTween = new Tween(mcClip, "_x", Strong.easeOut, mcClip._x, _xmouse, 50, false);
maTween.onMotionFinished = function():Void {
trace("Mouvement terminé !");
}
Et bien on réagit à l'évènement "onMotionFinished " pour exécuter un traitement. On a donc l'habitude d'écouter des évènements dans les divers développement que nous réalisons au quotidien. Maintenant, dans le cadre de développement de nos propres classes, packages, .... il est très utile de savoir construire ces évènements.
Pourquoi et comment la classe Tween envoi un message "onMotionFinished".
Car pour vulgariser, et surtout mieux comprendre aussi, on dit que l'on envoi un message à un écouteur. Pour shakespear :
Broadcast Event to Listener.
Enfin, dernier petit exemple avant de fermer cette première partie de présentation, l'utilisation composant de Mx 2004 (donc architecture V2). Prenons le composant Button pour écouter si un bouton est pressé, ou autres, on peut soit utiliser l'ancienne méthode donc:
ActionScript Code:
cbtButton.onPress = function():Void {
//actions
}
Dans ce cas, notre boutton réagit comme un MovieClip. On peut aussi, et là c'est beaucoup mieux, utiliser les évènements spécifique qui sont "dispatchés" (envoyés) par le button. Dans ce cas on fera plutot :
ActionScript Code:
cbtButton.addEventListener("click", this);
function click():Void {
//actions
}
Dans ce cas là, on va attendre que le bouton nous envoi un message "click" pour effectuer les actions.... L'aide de Flash Mx 2004 est bien pour ça, si vous regarder de plus près les classe, vous verez que la liste des évènements de chaque classe est repertoriés. Ce qui permet de connaitre les messages qui seront envoyés par nos objets…
Source : Adddvance.net