基本原理:使用同一个事件调度类。调度类可以扩展EventDispatcher,或者直接使用EventDispatcher,或者实现IEventDispatcher。

在flex中中新建一个EventDispatcher对象作为共享对象,用它抛出事件对象,然后在任意需要监听这个事件对象的取得这个共享的EventDispatcher,并添加监听处理函数或方法。

例子:自定义一个事件类继承Event

  1. package  
  2. {  
  3.     import flash.events.Event;  
  4.     import flash.events.EventDispatcher;  
  5.       
  6.     public class MyEvent extends Event  
  7.     {  
  8.         public static const ADD_PARAME:String="add_parame";   
  9.           
  10.         public static const dispatcher:EventDispatcher=new EventDispatcher();   
  11.         public var data:String;   
  12.           
  13.         public function MyEvent(type:String, bubbles:Boolean=falsecancelable:Boolean=false)  
  14.         {  
  15.             super(type, bubbles, cancelable);  
  16.         }  
  17.     }  

 

  1. //发事件:   
  2. var evt:MyEvent=new MyEvent(MyEvent.ADD_PARAME);   
  3. evt.data = "12312312";//发送事件同时,可以传值(可传可不传)   
  4. MyEvent.dispatcher.dispatchEvent(evt);   
  5.  
  6. //侦听事件:   
  7. MyEvent.dispatcher.addEventListener(MyEvent.ADD_PARAME,addparame); 

监听事件可以放在任意地方。