1

我在 Flash Professional 中使用 ActionScript 3,我希望我的班级引发一个事件,而不是自定义事件,而是现有事件。我已经设置了我的类,以便它扩展 EventDispatcher。在文档http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/EventDispatcher.html中,该示例通过添加静态字符串变量来声明自定义事件:

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

1 回答 1

4

要使事件显示在智能感知中,您需要使用Event 元标记注册它们:

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

在分派此事件的类之前添加它。

于 2012-01-23T11:54:26.220 回答