[AS3] - Comment écouter un bouton en Actionscript3
Par Laurent Deketelaere le lundi, mai 11 2009, 10:39 - Flash plateforme - Lien permanent
Bonjour,
Suite à une recherche rapide sur le net, je me suis rendu compte que certains éléments de base en Actionscript2, n'étaient pas disponible sur le net. En français du moins.
Donc voici une petite explication sur : Comment écouter un bouton en Actionscript3.
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_OVER, maFunction);
// 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
Commentaires
hello
Petite coquille dans ton article au dessus avec la classe "InteractiveObject" et non pas "InteractifObject"
Le problème en aS3 c'est surtout sur le releaseOutside qui n'est pas inclus par défaut et qu'il est possible d'implémenter.
Sinon personnellement je me suis créé une petite classe pour améliorer les fonctionnalités de bouton par défaut des InteractiveObject en donnant un accés AS1/AS2 like pour implémenter des fonctions callback avec des méthodes "release", "press", etc... un peu comme lorsque l'on utilisait "onPress" etc...
EKA+
Corrigé!! thx
Perso, pour le releaseOutSide, j'écoute le release sur le Stage. :p
j'avais fait un billet là dessus quand j'étais jeune et que je commençais l'as3:
http://www.grgrdvrt.com/blog/index....
c 'est marrant de revoir ça avec le recul
bonjour,
Desolé de poser cette question au mauvais endroit, mais les commentaires sont fermés.
Le lien pour télécharger les sources AS3/lowra dans le post "lowRA - Un petit lifting sur le MVC+FC" est cassé. Cet exemple semble etre pour l'instant la seule resource disponible sur l'utilisation du MVC (abstractView et model) dans lowra.
Pourrais tu, si tu as le temps, les remettre en ligne ?
Ou si c'est plus simple pour toi, tu as mon mail.
Merci d'avance, et tout simplement merci pour tout !
arf ah non .. il n"y a pas de mail... bon voila il y est, dans le speudo.
voila, tu peux supprimer mes deux messages !
Corrigé, j'avais fais un update un peu à la-rache.com de dotclear. :p
J'en ai aussi profité pour remettre en place le formulaire de contact.