·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]sendMediaEvent事件发送(自定义事件发送)(3)

时间:2016-08-24 10:51aisajiajiao
第三种方法,实现IEventDispatcher接口。 package { importflash.display.Sprite; importflash.events.Event; importflash.events.EventDispatcher; /** *... *@authoraisajiajiao *使用IEventDispatcher接口 */ pu

第三种方法,实现IEventDispatcher接口。

  1. package   
  2. {   
  3.     import flash.display.Sprite;   
  4.     import flash.events.Event;   
  5.     import flash.events.EventDispatcher;   
  6.        
  7.     /**   
  8.      * ...   
  9.      * @author aisajiajiao   
  10.      * 使用IEventDispatcher接口   
  11.      */   
  12.        
  13.     public class CustomEventDispatcherDemo3 extends Sprite   
  14.     {   
  15.        
  16.         public function CustomEventDispatcherDemo3()   
  17.         {   
  18.             var dispatcher:SampleEventDispatcher = new SampleEventDispatcher();   
  19.                
  20.             //不推荐直接使用字符串表示事件类型,这里只是作为演示   
  21.             dispatcher.addEventListener("Custom",actionListener);   
  22.             dispatcher.dispatchEvent(new Event("Custom"));   
  23.         }   
  24.            
  25.         private function actionListener(e:Event):void   
  26.         {   
  27.             trace("自定义事件发送类" + e);   
  28.         }   
  29.     }   
  30. }   
  31.    
  32. import flash.events.Event;   
  33. import flash.events.EventDispatcher;   
  34. import flash.events.IEventDispatcher;   
  35.    
  36. //这样灵活性非常大,可以在这里实现你想要的各种功能   
  37. class SampleEventDispatcher implements IEventDispatcher   
  38. {   
  39.     public var _dispatcher:EventDispatcher;   
  40.        
  41.     public function SampleEventDispatcher()   
  42.     {   
  43.         _dispatcher = new EventDispatcher();   
  44.     }   
  45.        
  46.     public function addEventListener(type:String,listener:Function,   
  47.                     useCapture:Boolean = false,priority:int = 0,useWeakReference:Boolean = false):void   
  48.     {   
  49.         _dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference);   
  50.     }   
  51.        
  52.     public function dispatchEvent(event:Event):Boolean   
  53.     {   
  54.         return _dispatcher.dispatchEvent(event);   
  55.     }   
  56.        
  57.     public function hasEventListener(type:String):Boolean   
  58.     {   
  59.         return _dispatcher.hasEventListener(type);   
  60.     }   
  61.        
  62.     //注意这里的参数个数是与addEventListener数目不同的,仅有3个   
  63.     public function removeEventListener(type:String,listener:Function,useCapture:Boolean = false):void   
  64.     {   
  65.         _dispatcher.removeEventListener(type,listener,useCapture);   
  66.     }   
  67.        
  68.     public function willTrigger(type:String):Boolean   
  69.     {   
  70.         return _dispatcher.willTrigger(type);   
  71.     }   
  72. }   

所有自定义事件最终的输出结果如下图:

http://blog.csdn.net/aisajiajiao/article/details/6960475

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器