Bonjour à tous,
bon après avoir passer la journée d'hier, et la mâtiné à lire de la doc, je dois me rendre à l'évidence, je comprend rien à la façon dont se propage un évènement lancé avec un dispatchEvent();.
j'ai pourtant simplifier mon problème au maximum, mais rien à faire, je n'arrive pas à écouter mes évènement perso.
Voici une simplification extrême de mon problème.
Sur la scène je place :
- Une occurrence d'un clip "dispatcher" qui contient
=> Une occurrence de clip appeler bt.
- Une occurrence d'un autre clip (vide) appelé mcContainer
Je possède deux classes, une appelé Main :
Code Main : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package { import flash.display.*; import flash.events.*; public class Main extends MovieClip { public function Main() { dispatcher.addEventListener("chargerEditTv", editTvHandler); dispatcher.bt.addEventListener("chargerEditTv", editTvHandler); mcContainer.addEventListener("chargerEditTv", editTvHandler); this.addEventListener("chargerEditTv", editTvHandler); trace("ok"); } private function editTvHandler(e:Event):void { trace("L'editeur Tv est en cours de chargement"); } } }
qui a pour but de lancer tous les actions "principales" en écoutant les évenements lancé par les clas périphérique.
Comme vous pouvez le constater, dans ma classe Main, j'ai ici mis un écouteur sur tous les éléments de ma page pour essayer de comprendre comment se propageait mon évènement personnalisé, mais rien à faire...aucun élément présent sur ma scène ne semble l'entendre.
Une autre class appelé dispatch :
Code dispatch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package { import flash.display.*; import flash.events.*; public class dispatch extends MovieClip { public function dispatch() { bt.addEventListener(MouseEvent.CLICK, pageBouquet); trace("oi"); } private function pageBouquet(e:MouseEvent):void { trace("Cette page est une page bouquet"); var evt:Event = new Event ("chargeEditTv", true); dispatchEvent(evt); trace(evt); } //class } }
Qui comme son nom l'indique, doit dispatcher mes évènements perso.
Sur le fichier Fla, j'ai défini la classe comme étant "Main", et exporter le clip dispatcher pour action script, avec pour nom de classe dispatch.
Voici ce que je récup en sortie :
Envoyé par sortie_des_trace
je suis relativement agacé car je suis sur que c'est une notion ultra simple que je comprend pas ou que j'oublie...c'est frustrant.
si qq'un pouvait éclairer ma lanterne, je lui en serait reconnaissant.
Merci.
Partager