Gérer l'évenement click en ActionScript 3 (AS3)
L'ActionScript 3 intègre un nouveau modèle d'événements basé sur le Document Object Model (DOM) Level 3 Events Specification.
Cette nouvelle version de l'ActionScript introduit un unique gestionnaire d'événements qui remplace les différents mécanismes des versions précédentes du langage.
Pour ajouter un événement en AS3, on utilise la méthode addEventListener(). Une fonction sera éxécutée en réponse à l'événement.
Un objet event est passé en tant qu'argument à la fonction. Cet objet event peut-être une instance des différentes classes du package flash.events, telles que MouseEvent, KeyboardEvent, FocusEvent...
-
// clip vide
-
var monClip:MovieClip = new MovieClip();
-
// rectangle bleu
-
var rectangle:Shape = new Shape();
-
rectangle.graphics.beginFill(0x0000FF);
-
rectangle.graphics.drawRect(5, 5, 100, 30);
-
// le rectangle est ajouté dans le clip
-
monClip.addChild(rectangle);
-
// Evénement click du clip contenant le rectangle
-
function clicRectangle(evt:MouseEvent):void
-
{
-
trace("Evénement de type : "+evt.type);
-
}
-
// Evénement click du clip est défini
-
monClip.addEventListener(MouseEvent.CLICK, clicRectangle);
-
// Le clip est ajouté à la séquence
-
this.addChild(monClip);
2 articles très complets sur les événements Flash : L'article de starmonkey et L'article de ekameleon
;-)
Je suis Antony Chauviré, développeur sur la Flash Platform.
Il est préférable d'utiliser une constante sur les classes Event, MouseEvent etc... pour récupérer le nom de l'événement :)
Exemple :
monClip.addEventListener( MouseEvent.CLICK, onClick);
Il est ainsi également plus facile de retrouver le type de l'événément renvoyé dans la fonction callback.
public function onClick(event:MouseEvent):void
{
trace("> " + event) ;
}
EKA+ :)
Merci EKA pour cette précision.
Il est vrai que le code devient encore plus compréhensible avec cette constante MouseEvent.CLICK.
(Y)
merci bocoup EKA!!