2012-01-23 25 views
1

我在Flash Professional中使用ActionScript 3,我希望我的課程能夠引發一個事件,而不是自定義事件,而是現有事件。我建立了我的課程,以便擴展EventDispatcher。在文檔http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/EventDispatcher.html的例子中添加動態,靜態字符串變量聲明瞭一個自定義事件:提升ActionScript 3中的非自定義事件

class CustomDispatcher extends EventDispatcher {

 public static var ACTION:String = "action"; 

我認爲可以:

dispatcher.addEventListener(CustomDispatcher.ACTION, actionHandler);

,或者至少自動完成,當你在Flash Professional IDE中鍵入'dispatcher.addEventListener(')

但是很多引發事件的類會引起現有非自定義事件的混合。例如,如果你有一個flash.netFileReference的實例,並鍵入

fileRef.addEventListener(

潛在事件一長串監聽給出包括DataEvent.UPLOAD_COMPLETE_DATA,Event.SELECT,HTTPStatusEvent.HTTP_STATUS,SecurityErrorEvent.SECURITY_ERROR,等等

如果我希望我的課程被註冊以提出這些現有的活動,我需要什麼代碼?優選地,以便IDE知道我的課程的實例可以引發事件並在addEventListener自動完成/智能感知列表中建議它們。

回答

4

爲了使事件在智能感知顯示出來,你需要使用Event metatag來註冊它們:

[Event(name="eventName", type="package.eventType")] 

只是分派此事件的類之前添加此。

+0

感謝Laurent,那就是我之後的感受。 – dumbledad