En AS1


on (rollOver) {
    gotoAndPlay("start");
}

Pour écouter une action sur un bouton, il suffisait de placer le code on (action) directement sur l'objet. C'était facile, rapide, mais ultra compliquer pour le maintient du code. 10 boutons x 10 rubriques x 2ou3 actions par bouton était égale à un nombre importante d'origine d'un bug! :p

En AS2


monBouton.onRollOver = function()
{
    gotoAndPlay("start");
    // ici this == monBouton;
}

L'Actionscript2 nous permettait déjà une écriture plus propre. En sortant le code des boutons on pouvait centraliser le code dans un seul endroit (en générale la 1ère image-clé du clip). Il est important de noter dans le code précédent que «monBouton» représente l'instance de l'objet Button ou MovieClip que l'on veut écouter.

En AS3


// abonement à l'action ROLL_OVER sur l'objet monBouton
monBouton.addEventListener(MouseEvent.ROLL_OVERmaFunction);
// fonction exécuter lorsque l'objet monBouton serra survolé.
function maFunction(e:MouseEvent)
{
    monBouton.gotoAndPlay("start");
    // ici this == l'endroit où la méthode est écrite;
    // pour cibler l'objet qui a lancer l'exécution de la méthode utiliser e.target
}

En Actionscript3, ça se complique un peu pour les non développeur. Si on ne veut pas rentrer dans les détails, il faut retenir que l'écriture se passe en deux temps, le première est l'abonnement, et le second l'écriture de la méthode qui serra exécuté. A noter que ce qui est écris juste au dessus est valable sur tous les objets qui étends la classe InteractiveObject (SimpleButton, TextField, Sprite, MovieClip,…).

N'hésitez pas à réagir dans les commentaires si vous voulez plus de détails sur l'un ou l'autre point ou sur la passage AS2/AS3.

Bonne journée,
Laurent ;)

D'autres billets qui en parlent :