PDA

Просмотр полной версии : Как прописать события, чтобы их мог видеть автокомплит FlashDevelop'a?


ramshteks
27.08.2010, 04:43
Если более подробно, то вопрос состоит в следующем. Автокомплит во флешДевелопе замечательный, никто с этим спорить не будет и умеет он массу вещей. И я не раз видел, что классы из сторонних пакетов имеют одну особенность. При подписывании их экземпляров на какое либо событие, после того как написано
someInstance.addEventListener(
выпадает замечательное меню автокомплита, которое показывает те события, которые может этот объект пульнуть, но не только стандартные, но и кастомные.

Вот в общем то и вопрос, что нужно прописать в своих классах, чтобы четко обозначить те события которыми он оперирует?

Заранее спасибо.

iNils
27.08.2010, 05:04
В том классе, к которому хотите привязать событие пишите в теле класса
[Event (name = "содержимое константы события", type = "класс, где описана константа события")]
Пример. У вас есть класс test.A который может диспатчить события, которые описаны в класс test.E. События два:
public static const TEST1:String = 'test1';
public static const TEST2:String = 'test2';
В test.A пишите
[Event (name = "test1", type = "test.E")]
[Event (name = "test2", type = "test.E")]

ramshteks
27.08.2010, 05:06
ответ был найден. Надо им поделится :)

вообщем то делается это через метатеги флексовские (http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html#159710)

в класс который вещает какое то событие пишите примерно такой код

[Event(name = "StratusAPIEvent_peer_code", type = "StratusAPIEvent")]

Но очень важно, как оказалось. Чтобы ваше кастомное событие содержащее константы событий эти самые константы правильно объявляло. Я видимо от недосыпа изначально объявил ее переменной

public static var PEER_CODE:String="StratusAPIEvent_peer_code"

и изза этого автокомплит выдавал совершенно не то что нужно.
Надеюсь кому нибудь это поможет =)

Добавлено через 1 минуту
Спасибо, за ответ. я вот только что разобрался и тоже написал как это делать =)
Можете мое удалить чтобы не мешалось )