Pb théorique as3 : addeventlistener, bouton et useCapture
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 2010
-
19 mai 2009 à 09:57
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 2010
-
19 mai 2009 à 10:55
Bonjour,
J'étudie le livre de Thibault Imbert "Pratique d'actionScript 3. Je suis au chapitre programmation évenementielle et j'ai beau relire je ne comprend pas la notion de useCapture.
Voici le code :
addEventListener ( MouseEvent.CLICK, clicBouton, true);
function clicBouton ( pEvt:MouseEvent ) : void{
trace("pEvt = "+pEvt);
}
//aucun écouteur n'est enregistré auprès du bouton --> affiche false
trace( monBouton.hasEventListener (MouseEvent.CLICK));
//un écouteur est enregistré auprès d'un des parents du bouton --> affiche true
trace( monBouton.willTrigger (MouseEvent.CLICK));
//un écouteur est enregistré auprès du scénario principal --> affiche true
trace( willTrigger (MouseEvent.CLICK));
Ce que je ne comprend pas c'est que je ne cible pas le bouton et qu'il fonctionne quand même. Pire, si je le cible
monBouton.addEventListener ( MouseEvent.CLICK, clicBouton, true);
Il ne fonctionne plus.
Je ne comprend pas à quoi ça sert.
Si je rajoute un second bouton, et une seconde fonction et un listener sans le true :
monBouton2.addEventListener ( MouseEvent.CLICK, clicBouton2);
Ce second bouton diffuse les deux fonctions.
Qu'est-ce que cela signifie et... je le répète, à quoi ça sert ?
Merci d'avance pour vos lumières.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201311 19 mai 2009 à 10:19
bonjour,
Ton écouteur est sur l'objet contenant ton bouton, donc normal que l'appuie sur le bouton (donc sur l'objet) déclenche l'action ...
Donc normal que les deux actions soient déclenchées lors du clic sur ton second bouton.
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 20102 19 mai 2009 à 10:50
J'ai compris... si on mets pas true, le bouton indiquera la phase de remonté et pas la phase de capture.
Même si jen'ai pas encore compris à quoi ça sert... ça devrait venir.
Merci pour ta réponse.
Donc, quand on spécifie true on se focalise sur la phase de capture (descendante si j'ai bien compris)
Quand on ne le spécifie pas, si on cible le bouton sur le listener on s'arrête sur la phase de capture puisque c'est le moment ou le bouton émet l'action, si par contre on cible la scène (premier cas), c'est au moment de la phase de remonté que l'action est émise.