1
我做了一個門/按鈕,並添加爲一類,我想它,所以當你點擊它,將調度,在主要動作頁信號的功能來運行事件使用AS3事件調度
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Door extends MovieClip {
var direct:String;
var doorId:int;
var dispatcher = new EventDispatcher();
public function Door() {
this.addEventListener(MouseEvent.CLICK, changeRoom)
this.buttonMode = true;
}
function changeRoom(e:MouseEvent):void{
trace("door click")
dispatcher.dispatchEvent(new Event("doorClick"));
}
}
}
主頁看起來像這樣
var doorTop = new Door();
doorTop.addEventListener("doorClick",goToRoom);
//should i be doing stage.addEventListener("doorClick",goToRoom);
function goToRoom(e:Event):void
{
trace("i went here")
}
我做錯了什麼?看起來很直白
我有一個問題,如果該類沒有擴展事件調度程序,那麼做什麼是正確的方法呢?一旦收到,如何識別誰叫它? – artSir
如果您需要在類中使用事件,則應該**總是**使其擴展EventDispatcher。你不應該在代碼中實例化一個實際的EventDispatcher。沒有任何東西可以阻止你(在這種情況下,你可以將偵聽器附加到'object.dispatcher'上,而不是'object'),但你甚至不需要。大多數對象已經擴展了EventDispatcher, –
謝謝,我可以用什麼來識別誰發送了事件?像this.target.e這樣的東西? – artSir