2012-01-23 23 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