<h2>Votre Formation vidéo</h2><br/>
Votre formation est décomposée<br/>
en chapitres très clairs de 20 à 30 min. <h2>Des exemples SWF </h2><br/>
Chaque leçon est accompagnée<br/>
du code source avec le fla et les classes. <h2>Votre Suivi personnalisé</h2><br/>
Vous pouvez  me poser toutes<br/>
vos questions sous les cours vidéos.

AS3 Signals : passer des paramètres avec un Event

Commentaires fermés sur AS3 Signals : passer des paramètres avec un Event

Écrit le 17 avril par Matthieu
Publié dans le(s) sujet(s) Framework AS3

Mots clés : , ,

AS3 Formation Expert Adobe Flash

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.
Sa philosophie :
  • 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 :

var event : Signal = new Signal(String, Boolean);// definition des types des paramètres à diffuser par dispatch

Ensuite, lorsque la classe Event doit diffuser un évènements aux écouteurs, il faut procéder comme suit :

event.dispatch( "Votre texte...", false );

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.

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+" <---");
}

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.

var click : NativeSignal = new NativeSignal(this, 'click', MouseEvent);// gestion du CLICK de la souris avec AS3 Signals

Vous pouvez également simuler l’évènement AS3 Signals pour informer les écouteurs.

oBtnStart.dispatchEvent(new MouseEvent("click") ); // simulation évènement CLICK

Pour supprimer un écouteur :

oTxtInput.event.remove(onUpdateReceiveTxt);// supprimer un écouteur

Pour supprimer tous les écouteurs d’un seul coup :

oTxtInput.event.removeAll();// supprime tous les écouteurs automatiquement

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…

oTxtInput.event.addOnce(onUpdateReceiveTxt);// écouteur appelé une seul fois puis il est supprimé automatiquement

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.

https://www.actionscript-facile.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é 85 fois – 237 KB

Té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…



Développez des Jeux et Applications Flash avec la Formation AS3 Facile !

Recevez Gratuitement Des Cours en Vidéos, des codes source et des livrets de formation.
Et en bonus gratuit : Le Framework AS3 Facile ! 


vel, Curabitur justo consectetur commodo tristique nec elit. Donec fringilla quis,