代码:
- package?com.evrnt ?
- { ?
- ????import?flash.events.Event; ?
- ????import?flash.events.EventDispatcher; ?
- ????import?flash.events.IEventDispatcher; ?
- ?
- ????public?class?InputEventDispatcher???{ ?
- ???????? ?
- ????????private?static?var?_inst:InputEventDispatcher; ?
- ????????private?var?eventDispatcher:IEventDispatcher; ?
- ???????? ?
-
????????public?function?InputEventDispatcher(target:IEventDispatcher?=?null){ ?
-
????????????eventDispatcher?=?new?EventDispatcher(target); ?
- ????????} ?
- ???????? ?
- ????????/**?获取FastReportEventDispatcher类的唯一实例?*/ ?
- ????????public?static?function?getInstance():InputEventDispatcher{ ?
- ????????????if(!_inst){ ?
-
????????????????_inst?=?new?InputEventDispatcher(); ?
- ????????????} ?
- ????????????return?_inst; ?
- ????????} ?
- ???????? ?
- ????????/**?添加事件侦听器函数?*/ ?
-
????????public?function?addEventListener(type:String,listener:Function,useCapture:Boolean=false,pririty:int=0,useWeakReference:Boolean=true):void{ ?
- ????????????eventDispatcher.addEventListener(type,listener,useCapture,pririty,useWeakReference); ?
- ????????} ?
- ???????? ?
- ????????/**?删除事件监听器函数?*/ ?
-
????????public?function?removeEventListener(type:String,priority:int=0,useWeakReference:Boolean=true):void{ ?
- ????????????eventDispatcher.removeEventListener(type,useCapture); ?
- ????????} ?
- ???????? ?
- ????????/**?事件派发函数?*/ ?
- ????????public?function?dispatchEvent(event:InputEvent):Boolean{ ?
- ????????????return?eventDispatcher.dispatchEvent(event); ?
- ????????} ?
- ???????? ?
- ????????/**?检查是否已经存在事件侦听器?*/ ?
- ????????public?function?hasEventListener(type:String):Boolean{ ?
- ????????????return?eventDispatcher.hasEventListener(type); ?
- ????????} ?
- ???????? ?
- ????????/**?检查eventDispatcher?对象或其他任何数组是否注册了指定类型的事件侦听器?*/ ?
- ????????public?function?willTrigger(type:String):Boolean{ ?
- ????????????return?eventDispatcher.willTrigger(type); ?
- ????????} ?
- ????} ?
- }?
自定义一个类用来发送和监听事件,就可以实现在任意地方监听。