samplecompositeeventdispatcher.as

来自「《Flash AS3殿堂之路》光盘源码 学习ActionScript 3.0」· AS 代码 · 共 56 行

AS
56
字号
package org.kingda.book.event
{
	import flash.display.Sprite;
	import flash.events.Event;


	public class SampleCompositeEventDispatcher extends Sprite
	{
		public function SampleCompositeEventDispatcher() {
			var kingdaObj:KingdaClass = new KingdaClass();
			
            //一定要用kingdaObj.getSender()来返回事件发送对象,才能addEventListener
			kingdaObj.getSender().addEventListener(KingdaClass.ACTION, lisFunc);
			
			kingdaObj.doSomething();
            //输出:
            //doSomething
            //listened:yeahyeah


		}
		//侦听器
		private function lisFunc(evtObj:Event):void {
			trace ("listened:"+evtObj.type);
		}
	}
}
	import flash.events.EventDispatcher;
	import flash.events.Event;

	class KingdaClass extends EventDispatcher {
		private var _dispatcher:EventDispatcher;
		public static const ACTION:String = "yeahyeah";
		
		public function KingdaClass() {
			initSender();
		}
		
		private function initSender():void {
			 _dispatcher = new EventDispatcher();
		}
		
               //调用一个专门的方法(method)来返回发送事件的EventDispatcher。
		public function getSender():EventDispatcher {
			return _dispatcher;
		}
		public function doSomething():void {
			trace("doSomething");
                        //除了以下两行发送事件,还可以写入其它你要干的事儿。灵活。
			var evtObj:Event = new Event(KingdaClass.ACTION);
			_dispatcher.dispatchEvent(evtObj);	
		}
	}
	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?