Chaque composant diffuse des événements lorsqu’un utilisateur interagit avec lui. Par exemple, lorsqu’un utilisateur clique sur un composant Button, celui distribue un événement
MouseEvent.CLICK
; lorsqu’il sélectionne un élément dans un composant List, celui-ci distribue un événement Event.
CHANGE
. Un événement peut également se produire lorsqu’une opération importante intervient sur un composant comme, par exemple, à la fin du chargement du contenu pour une occurrence de UILoader, ce qui génère un événement
Event.COMPLETE
. Pour gérer un événement, vous rédigez du code ActionScript qui s’exécute lorsque l’événement se produit.
Les événements d’un composant incluent les événements de toutes les classes héritées par le composant. Cela signifie que tous les composants de l’interface utilisateur ActionScript 3.0 héritent des événements de la classe UIComponent car il s’agit de la classe de base des composants de l’interface utilisateur ActionScript 3.0. Pour afficher la liste des événements diffusés par un composant, voir la section Evénements de l’entrée consacrée à la classe du composant dans le
Guide de référence d’ActionScript 3.0
pour Flash Professional
.
Pour obtenir une description détaillée de la gestion des événements dans ActionScript 3.0, voir le guide
Programmation d’ActionScript 3.0
.
Présentation des écouteurs d’événements
Les points importants suivants s’appliquent à la gestion des événements des composants ActionScript 3.0 :
-
Tous les événements sont diffusés par l’occurrence d’une classe de composant. L’occurrence de composant est le
diffuseur
.
-
Vous pouvez enregistrer un
écouteur
d’événements en appelant la méthode
addEventListener()
de l’occurrence du composant. Par exemple, la ligne de code suivante ajoute un écouteur pour l’événement
MouseEvent.CLICK
à l’occurrence de bouton
aButton
:
aButton.addEventListener(MouseEvent.CLICK, clickHandler);
Le deuxième paramètre de la méthode
addEventListener()
enregistre le nom de la fonction,
clickHandler
, à appeler lorsque l’événement se produit. Cette fonction est également appelée fonction de rappel.
-
Vous pouvez associer plusieurs écouteurs à une seule occurrence de composant.
aButton.addEventListener(MouseEvent.CLICK, clickHandler1);
aButton.addEventListener(MouseEvent.CLICK, clickHandler2);
-
Vous pouvez associer un seul écouteur à plusieurs occurrences de composant.
aButton.addEventListener(MouseEvent.CLICK, clickHandler1);
bButton.addEventListener(MouseEvent.CLICK, clickHandler1);
-
La fonction de gestionnaire d’événements est transmise à un objet événement contenant des informations sur le type d’événement et l’occurrence qui diffuse celui-ci. Pour plus d’informations, voir la section
Présentation de l’objet événement
.
-
L’écouteur reste actif tant que l’application n’est pas terminée ou que vous ne l’avez pas supprimé de manière explicite par la méthode
removeEventListener()
. Par exemple, la ligne de code suivante supprime l’écouteur de l’événement
Mouse Event.CLICK
sur
aButton
:
aButton.removeEventListener(MouseEvent.CLICK, clickHandler);
Présentation de l’objet événement
L’objet événement hérite de la classe d’objet Event et possède des propriétés qui contiennent des informations sur l’événement qui s’est produit, notamment les propriétés
target
et
type
qui fournissent des informations essentielles sur l’événement :
Propriété
|
Description
|
type
|
Chaîne indiquant le type d’événement.
|
target
|
Référence à l’occurrence de composant qui émet l’événement.
|
Lorsqu’un événement possède d’autres propriétés, elles sont recensées dans la description de la classe de l’événement du
Guide de référence d’ActionScript 3.0
pour Flash Professional
.
L’objet événement est automatiquement généré et transmis à la fonction de gestionnaire d’événements lorsqu’un événement se produit.
Vous pouvez l’utiliser à l’intérieur de la fonction pour connaître le nom de l’événement diffusé ou le nom de l’occurrence du composant qui a diffusé l’événement. A partir du nom de l’occurrence, vous pouvez accéder à d’autres propriétés du composant. Le code suivant, par exemple, utilise la propriété
target
de l’objet événement
evtObj
pour accéder à la propriété
label
de
aButton
et l’afficher dans le panneau Sortie :
import fl.controls.Button;
import flash.events.MouseEvent;
var aButton:Button = new Button();
aButton.label = "Submit";
addChild(aButton);
aButton.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(evtObj:MouseEvent){
trace("The " + evtObj.target.label + " button was clicked");
}
|
|
|