Sélectionnez votre langue

Gestion des évènements Action Script 2

 

Langage : AS2
Détails : Utilisation des évènements.

 

Les évènements

Dans un projet flash, il existe un certain nombre d'évènements. ils sont déclenchés sur une action spécifique, par exemple lors du déplacement de la fenêtre, lors d'un clic de souris, la fin d'une animation,
l'appui sur une touche, etc ...

Comment capturer ces évènements ?

Pour capturer un évènement et ainsi définir un script sur le déclenchement de celui-ci, vous devez utiliser des écouteurs. Ils permettent de recevoir les évènements envoyés par d'autres objets.

Comment fonctionnent les objets écouteurs ?

Une fois l'objet écouteur défini, celui-ci va attendre le déclenchement de l'évènement qu'il écoute.
Par exemple l'évènement "onResize" sera diffusé lorsque l'utilisateur redimensionnera la fenêtre.
L'écouteur va alors capturer l'évènement et exécuter une fonction que l'utilisateur aura au préalable déclarée.


// création de l'objet écouteur
var listenerObject:Object = new Object ( ) ;

// On définit la fonction
listenerObject.onResize = function ( eventObj:Object ) {

// La fenêtre a été redimensionnée
trace ( Stage.width ) ;
trace ( Stage.height ) ;
// peut s'écrire aussi car le target pointe vers l'objet qui diffuse l'évènement
trace ( eventObj.target.width ) ;

};

// On ajoute un écouteur à l'objet qui va diffusé l'évènement
// ici Stage définit la scène globale

Stage.addListener ( listenerObject ) ;



// Remarque, voici comment utiliser un écouteur avec un composant
// -------------------------------------------------------------------------

var componantListener:Object = new Object ( ) ;

componantListener.complete ( eventObj:Object ) {

// La composant a terminé de charger

trace ( " Chargement terminé " ) ;


}


monComposant.addEventListener ("complete", componantListener ) ;

Lors du redimensionnnement de la scène, la fonction sera alors exécutée et l'on pourra visualiser les nouvelles dimensions de la scène.

Comment faire plus simple ?

Certains objets comme les boutons, intègrent déjà des gestionnaires d'évènements.
Vous pouvez alors définir directement l'action associée à l'évènement.
Voici un exemple ci-dessous :


// On défini la fonction
myButton.onRelease = function ( ) {

// le bouton à été relâcher
trace ( " Bouton relâché ! " ) ;

};
Lors du clic de la souris sur le bouton "myButton" la script qui a été défini sera alors exécuté,
et l'on visualisera dans la console le texte " Bouton relâché ! ".


Comment faire plus compliqué ?

Pour gérer tout ces évènements il existe des petites astuces bien pratiques,
notamment la fonction Delegate, qui permet de rediriger les évènements vers une autre fonction de votre choix.
Voici plus bas différentes manières de gérer des évènements avec cette méthode.

Les redirections vers une fonction via le Delegate


// Dépendance pour l'utilisation de la fonction delegate
import mx.utils.Delegate;

// ----------------------------------
// Exemple d'utilisation sur le gestionnaire d'évènement du bouton
// ----------------------------------
myButton.onRelease = Delegate.create ( this, maFonctionRelease ) ;

// ----------------------------------
// Exemple d'utilisation avec un objet via un écouteur
// ----------------------------------
var listenerObject:Object = new Object ( ) ; // création de l'objet écouteur

// On redirige la fonction puis on ajoute l'écouteur
listenerObject.onResize = Delegate.create ( this, maFonctionResize ) ;
Stage.addListener ( listenerObject ) ;


// ----------------------------------
// Exemple d'utilisation avec un composant via un écouteur
// ----------------------------------
componant.addEventListener ( "complete", Delegate.create ( this, maFunctionComplete) ) ;



/**
* Evènement onRelease du bouton
*/

function maFonctionRelease ( ) {

// le bouton a été relâché
trace ( " Bouton relâché ! " ) ;


}


/**
* Evènement onResize de la scène
*/

function maFonctionResize ( ) {

// la scène a été redimensionnée
trace ( " Scène redimensionner ! " ) ;


}

/**
* Evènement Complete du composant
*/

function maFonctionComplete ( ) {

// le composant a terminer de charger
trace ( " Le composant a fini de charger ! " ) ;


}





En conclusion

Pas évident de s'y retrouver dans toutes ces méthodes pour capturer un évènement.
La méthode dépend du type d'objet à écouter. Mais rassurez-vous pour ceux qui sont passer
à AS3 la gestion des évènements à été simplifiée et normalisée.


 

- haut de page -



About

Créateur de solutions innovantes
Android | iOS | Web | NFC

Keep in touch