原來也研究過EventDispatcher,但是最近用的比較多,沒想到這麼好用,不用定義那麼多全域變數。
我不做過多的說明,想要深入瞭解的同學請看協助,我只告訴大家怎麼定義自己的事件,而且大家馬上就能用這些代碼定義自己的事件。
下面看代碼:
//首先我們要匯入EventDispatcherimport mx.events.EventDispatcher;class testEvent extends MovieClip{ function testEvent(){//在建構函式中初始化 EventDispatcher.initialize(this); }//定義這三個方法 function dispatchEvent(){} function addEventListener(){} function removeEventListener(){} function sendOK(){//定義事件onSend var eventObj1:Object = {target:this,type:"onSend"}; dispatchEvent(eventObj1); trace("OK");//定義事件onComplete var eventObj2:Object = {target:this,type:"onComplete"}; dispatchEvent(eventObj2); }}
怎麼用我們的事件呢?往下看!
建立一個FLA,輸入以下代碼:
大家還記得UI組建的事件處理函數麼,對這個和UI組建的差不多,都是addEventListener和removoeEventListener。
var testObj:testEvent = new testEvent();var eventObj1:Object = new Object();eventObj1.onSend = function(obj){ trace("type:"+obj.type);}var eventObj2:Object = new Object();eventObj2.onComplete = function(obj){ trace("type:"+obj.type);}testObj.addEventListener("onSend",eventObj1);testObj.addEventListener("onComplete",eventObj2);testObj.sendOK();
ok!去定義你的事件吧。