Вызов нестандартных событий в ActionScript 3 - PullRequest
1 голос
/ 23 января 2012

Я использую ActionScript 3 во Flash Professional и хотел бы, чтобы мой класс вызывал событие, а не пользовательское событие, а существующее. Я настроил свой класс так, чтобы он расширял EventDispatcher. В документации http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/EventDispatcher.html пример объявляет пользовательское событие, добавляя статическую переменную String:

class CustomDispatcher extends EventDispatcher {</p> <pre><code> public static var ACTION:String = "action";

Я предполагаю, что это позволяет:

dispatcher.addEventListener(CustomDispatcher.ACTION, actionHandler);</p> <p>

или, по крайней мере, автозаполнение, когда вы ввели "dispatcher.addEventListener (" в IDE Flash Professional.

Но многие классы, которые вызывают события, порождают смесь существующих нестандартных событий. Например, если у вас есть экземпляр flash.netFileReference и введите

fileRef.addEventListener(</p> <p>

предоставляется длинный список потенциальных событий для прослушивания, включая DataEvent.UPLOAD_COMPLETE_DATA, Event.SELECT, HTTPStatusEvent.HTTP_STATUS, SecurityErrorEvent.SECURITY_ERROR и т. Д.

Если я хочу, чтобы мой класс был зарегистрирован, чтобы поднять эти существующие события, какой код мне нужен? Желательно, чтобы среда IDE знала, что экземпляры моего класса могут вызывать событие и предлагает их в списке автозаполнения / intellisense addEventListener.

1 Ответ

4 голосов
/ 23 января 2012

Чтобы события отображались в intellisense, вам необходимо зарегистрировать их, используя метатег Event :

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

Добавьте это непосредственно перед классами, отправляющими это событие.

...