Sujets sur : event
Cours ActionScript 3 ‘event’
Appliquer le modèle évènementiel d’ActionScript 3 dans vos applications en 3 étapes
Commentaires fermés sur Appliquer le modèle évènementiel d’ActionScript 3 dans vos applications en 3 étapes

La série des cours ActionScript Facile continue suite à vos nombreuses questions !
L’ActionScript 3 est un langage de POO : Programmation Orientée Objet. De plus, il intègre un système évènementiel avancé permettant de déclencher différentes actions.
Ce nouveau tutoriel ActionScript vous apprend à tirer parti du Modèle de Conception Observateur. Et surtout à l’implémenter, dès maintenant dans vos applications flash.
Voici ce que vous allez mettre en pratique suite à cette formation Flash :
- Comment fonctionne le système évènementiel d’ActionScript 3.
- Comment un exemple de la vie de tous les jours illustre la mise en oeuvre du Modèle de Conception Observateur.
- L’astuce pour utiliser les images de la bibliothèque d’Adobe Flash directement à partir du code ActionScript (via BitmapData).
- La technique pour utiliser la notion d’évènement dans une application Adobe Flash.
- Un exemple pratique sur l‘implémentation des évènements dans vos applications flash.
Avec ce tutoriel flash, vous utilisez la puissance des évènements pour lancer des actions dans vos applications flash.
Le Modèle de Conception Observateur
Version démonstration
Voici la version de l’application « Contrôle Animation ».
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2013/02/events.swf |
Télécharger le code source Observateur
Vous trouvez ci-dessous le code source complet pour utiliser les évènements dans vos applications flash.
Ce code source est accompagné du fichier fla avec l’ensemble des composants du Framework AS3 Facile.
Télécharger “Modèle de Conception Events” pattern-events.zip – Téléchargé 746 fois – 501,50 KoComment implémentez vous le modèle de conception Observateur dans vos applications ?
Est ce que vous utilisez un Framework (AS3 Signals, Vegas, Pixlib, PureMVC), votre propre Framework ?
Partagez votre code, vos retours d’expériences dans les commentaires ci-dessous.
AS3 Signals : passer des paramètres avec un Event
Commentaires fermés sur AS3 Signals : passer des paramètres avec un Event

L’utilisation des évènements est indispensable dans la création de vos applications flash.
Le système Event par défaut d’Adobe est très pratique. Cependant, il représente un défaut de taille :
Il n’est pas possible de transmettre des paramètres avec nos évènements !
Dans certaine situation, cela peut s’avérer très problématique… et vous causer beaucoup de nuits blanches en tant que développeur flash !
Heureusement, Robert Penner a eu l’ingénieuse idée de créer une librairie de diffusion d’évènements, prenant en charge le passage de paramètres 😉
Présentation AS3 Signals
AS3Signals est une librairie qui améliore et peut remplacer l’utilisation du système événementiel de Flash.
Cette librairie s’inspire du système événementiel de C# et signals/slots de QT.
Ces caractéristiques :
- Un signal est un mini-dispatcher spécifique à un événement, avec son propre réseau d’écouteurs.
- Un signal est un attribut concret de la classe qui émet celui-ci.
- Les écouteurs souscrivent à un objet concret et non plus à un canal défini par une chaine de caractères.
- Les constantes définissant un événement ne sont plus nécessaires.
- La Composition et les Interfaces sont favorisés par rapport à l’Héritage.
- Les évènements dans une Interface sont une bonnes choses.
- Les différents types d’évènements sont des classes et non des String.
- Les classes évènements sont concentrées sur les données qu’elles contiennent et non sur celui qui les envoient.
- Les classes évènements ne contiennent pas de constantes String autres que les classes qui les utilisent.
- Jusqu’ici, pas de mot clé dans les sources.
- Pas de Singleton.
AS3Signals est compatible avec les objets natifs d’AS3 émettant des événements (comme par exemple le clic de la souris).
Une fonctionnalité intéressante est la possibilité, pour un émetteur, de désinscrire la totalité des écouteurs grâce à l’appel d’une seule méthode.
Utilisation AS3 Signals
La mise en place d’AS3 Signals est relativement simple. Voici une mise en pratique pas à pas.
Etape 1 : la classe Event
Dans votre classe « Event », celle qui diffuse des évènements pour informer des écouteurs.
Vous devez ajouter un objet Signal ou NativeSignal selon l’utilisation à réaliser.
Avec AS3 Signals, il est possible de typer les paramètres à transmettre avec l’évènement (c’est génial 😉 ).
Un objet Signal prend comme paramètre, le type des paramètres transmis avec l’évènement.
Par exemple :
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 | var event : Signal = new Signal(String, Boolean);// definition des types des paramètres à diffuser par dispatch |
[/codesyntax]
Ensuite, lorsque la classe Event doit diffuser un évènements aux écouteurs, il faut procéder comme suit :
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 | event.dispatch( "Votre texte...", false ); |
[/codesyntax]
Etape 2 : les écouteurs
Pour écouter les évènements diffuser par la classe « Event », il suffit de lui indiquer la fonction qui sera appelée. Cette fonction récupère en entrée les paramètres envoyé par l’objet Signal.
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 2 3 4 5 6 7 8 9 10 11 12 | oTxtInput.event.add(onUpdateReceiveTxt); /** * Affiche les paramètres transmis avec l'évènement. * Appelé par AS3 Signals. * */ private function onUpdateReceiveTxt(sValue:String, bUpdate:Boolean) : void { if(bUpdate) oTxtListener.update("---> "+sValue); else oTxtListener.update(sValue+" <---"); } |
[/codesyntax]
Et puis c’est terminé !
Options supplémentaires
AS3 Signals peut même remplacer les évènements par défaut d’Adobe (MouseEvent…).
Il suffit d’utiliser l’objet NativeSignal et de lui transmettre le type d’évènement à capturer.
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 | var click : NativeSignal = new NativeSignal(this, 'click', MouseEvent);// gestion du CLICK de la souris avec AS3 Signals |
[/codesyntax]
Vous pouvez également simuler l’évènement AS3 Signals pour informer les écouteurs.
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 | oBtnStart.dispatchEvent(new MouseEvent("click") ); // simulation évènement CLICK |
[/codesyntax]
Pour supprimer un écouteur :
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 | oTxtInput.event.remove(onUpdateReceiveTxt);// supprimer un écouteur |
[/codesyntax]
Pour supprimer tous les écouteurs d’un seul coup :
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 | oTxtInput.event.removeAll();// supprime tous les écouteurs automatiquement |
[/codesyntax]
Il est même possible d’ajouter des écouteurs qui seront appelés une seule fois puis supprimés automatiquement !
Cela peut être utile dans certains cas…
[codesyntax lang= »actionscript3″ title= »AS3 Signals » bookmarkname= »AS3 Signals »]
1 | oTxtInput.event.addOnce(onUpdateReceiveTxt);// écouteur appelé une seul fois puis il est supprimé automatiquement |
[/codesyntax]
Les performances
Le gain de performances est énorme du passage du système Event d’Adobe à AS3 Signals de Robert Penner.
Consultez le résultat des benchmarks.
Mise en pratique AS3 Signals
Ci-dessous une mise en pratique complète d’AS3 Signals.
1 | http://e6msyji6epr.exactdn.com/wp-content/uploads/2012/04/as3-signals.swf |
Téléchargement
Téléchargez le code source complet et commenté de l’exemple pratique.
Télécharger “Exemple AS3 Signals” ex-as3-signals.zip – Téléchargé 670 fois – 236,95 KoTéléchargement depuis le dépôt GitHub : https://github.com/robertpenner/as3-signals
Avez-vous l’intention d’utiliser AS3 Signals dans vos applications pour remplacer Event d’Adobe ?
Ou peut être préférez-vous rester avec le système évènementiel par défaut de Flash ?
Il vous convient parfaitement…