?? sampleieventdispatcher.as
字號:
package org.kingda.book.event
{
import flash.display.Sprite;
import flash.events.*;
public class SampleIEventDispatcher extends Sprite
{
public function SampleIEventDispatcher() {
var kingdaObj:KingdaClass = new KingdaClass();
kingdaObj.addEventListener(KingdaClass.ACTION, lisFunc); //用起來和EventDispatcher對象一樣哦,呵呵。
var evtObj:Event = new Event(KingdaClass.ACTION);
trace (kingdaObj is EventDispatcher); //輸出:false
trace (kingdaObj is IEventDispatcher);//輸出:true
kingdaObj.dispatchEvent(evtObj);//確實一模一樣
//輸出:listened:yeahyeah
}
private function lisFunc(evtObj:Event):void {
trace ("listened:"+evtObj.type);
}
}
}
import flash.events.IEventDispatcher;
import flash.events.EventDispatcher;
import flash.events.Event;
class KingdaClass implements IEventDispatcher{
public var _dispatcher:EventDispatcher;
public static const ACTION:String = "yeahyeah";
public function KingdaClass() {
// other ....
initSender();
}
private function initSender():void {
_dispatcher = new EventDispatcher(this);
}
//哈哈,在實現接口時還可以乘機干點別的,比如我喜歡吧useWeakReference設為true
public function addEventListener(type:String,
listener:Function,
useCapture:Boolean = false,
priority:int = 0,
useWeakReference:Boolean = true):void{
// do other things;
_dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
public function dispatchEvent(evt:Event):Boolean{
// do other things;
return _dispatcher.dispatchEvent(evt);
}
public function hasEventListener(type:String):Boolean{
// do other things;
return _dispatcher.hasEventListener(type);
}
public function removeEventListener(type:String,
listener:Function,
useCapture:Boolean = false):void{
// do other things;
_dispatcher.removeEventListener(type, listener, useCapture);
}
public function willTrigger(type:String):Boolean {
// do other things;
return _dispatcher.willTrigger(type);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -