作者aquarianboy (佳節快樂 :))
看板Flash
標題Re: [問題]關於Listener的一些問題
時間Tue Mar 27 13:30:04 2007
※ 引述《gargouille (lol)》之銘言:
前文恕刪.. :)
小的做了一個簡單的範例來補充一下下 :)
基本上跟前一篇文章的原理是差不多的
//==============
// myClass.as
// 自定類別
//==============
class myClass{
private var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;
public function myClass() {
mx.events.EventDispatcher.initialize(this);
}
public function sendMsg(_msg:String):Void {
var eventObj:Object={target:this,type:"message"}
eventObj.msg=_msg;
dispatchEvent(eventObj);
}
}
//==============
// TEST1.fla
//==============
var msg1:myClass = new myClass();
msgObj = new Object();
msgObj.message = function(eventObj) {
trace(eventObj.msg);
};
msg1.addEventListener("message", msgObj);
msg1.sendMsg("hello");
說明:
msg1是我用自定類別產生的實體
並加了個EventListener上去監聽這個實體的自定事件(message)
當呼叫msg1.sendMsg的時候
sendMsg裡的參數(在這裡是"hello"),會被傳到eventObj.msg裡
Listener發現message事件被觸發,則會呼叫對應要執行的事情
在這裡,會把eventObj.msg給trace出來
所以會得到trace("hello")的結果
原始檔:
http://www.eddie.com.tw/FlashLabs/Examples/eventTest/events.rar
供大家參考 :)
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.136.105
推 gargouille:讚! XD 才想說要不要補個範例,結果就有人做好了 03/27 13:52
推 kazenol:感謝 03/27 23:48
推 etrexetrex:超強搭 03/28 01:38