基本原理:使用同一个事件调度类。调度类可以扩展EventDispatcher,或者直接使用EventDispatcher,或者实现IEventDispatcher。
在flex中中新建一个EventDispatcher对象作为共享对象,用它抛出事件对象,然后在任意需要监听这个事件对象的取得这个共享的EventDispatcher,并添加监听处理函数或方法。
例子:自定义一个事件类继承Event
- package
- {
- import flash.events.Event;
- import flash.events.EventDispatcher;
- public class MyEvent extends Event
- {
- public static const ADD_PARAME:String="add_parame";
- public static const dispatcher:EventDispatcher=new EventDispatcher();
- public var data:String;
- public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
- {
- super(type, bubbles, cancelable);
- }
- }
- }
- //发事件:
- var evt:MyEvent=new MyEvent(MyEvent.ADD_PARAME);
- evt.data = "12312312";//发送事件同时,可以传值(可传可不传)
- MyEvent.dispatcher.dispatchEvent(evt);
- //侦听事件:
- MyEvent.dispatcher.addEventListener(MyEvent.ADD_PARAME,addparame);
监听事件可以放在任意地方。
转载于:https://blog.51cto.com/aqqle/948235