Salut,
J'essaie de mieux comprendre les événements dans flex.
J'ai fait une petite application qui ne fait absolument rien sinon créer deux objets.
Le premier objet (Manager) est ajouté à l'application. Il crée un objet Location et écoute les événements du type "READY".
le second objet (Location) , cré par Manager, dispatch en event du type "READY".
Je ne comprends pas pourquoi l'événement n'est pas intercepté au niveau de l'objet manager?
ci joint dessous le code et en pièce jointe le projet flex.
Merci de vos éclairages
Code:
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" initialize="init()"> <mx:Script> <![CDATA[ import app.Manager; private function init():void{ var m:Manager = new Manager(); this.addChild(m); } ]]> </mx:Script> </mx:Application>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package app { import flash.events.Event; import mx.controls.Alert; import mx.core.UIComponent; public class Manager extends UIComponent { public function Manager() { this.addEventListener("READY", onReady); var l:Location = new Location(); this.addChild(l); trace("hello from manager constructor"); } private function onReady(e:Event):void{ Alert.show("Location is ready"); } } }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package app { import flash.events.Event; import mx.core.UIComponent; public class Location extends UIComponent { public function Location() { var e:Event = new Event("READY",true,false); dispatchEvent(e); trace("hello from Location Constructor"); } } }