(转)Flex Module通信(2)——使用事件
上一篇讨 论通过实现接口来实现Application和Modules的通信,本篇讨论通过使用事件实现Application和Modules的通信。在一个 swf中,组件间的交互通信可以直接使用addEventListener和dispatchEvent来完成事件的传递。当然这样的标准做法也适用于 Module。   
通过addEventListener和dispatchEvent在Module发布事件:
1: <?xml version="1.0" encoding="utf-8"?>
2: <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="onComplete()">
 3:   <mx:Script> 4: <![CDATA[
 5:              import mx.events.DynamicEvent; 6:
7: [Bindable]private var command:String="";
8: private function onComplete():void
 9:   {                      //从Application订阅 10:                  var sharedEventDispatcher:IEventDispatcher=systemManager.loaderInfo.sharedEvents; 11:
12: sharedEventDispatcher.addEventListener("init",onInit,false,0,true);
13:                  //通知Application:Module创建完成 14:                  sharedEventDispatcher.dispatchEvent(new Event(Event.COMPLETE)); 15: }
16:
17: private function onInit(event:DynamicEvent):void
18:   { 19:                  command=event.data as String; 20: }
21:
22: ]]>
23:      </mx:Script> 24:
25: <mx:Panel id="panel" title="Module With Events. {command}" width="400" height="200"/>
26:  </mx:Module> 27:
 
                    
                     
                    
                 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
