Gestion des événements

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