Доступ к статическому члену не имеет ничего общего с конструктором; так что у вас не будет проблем с производительностью.
Если рассматриваемое событие является настраиваемым событием, соглашение заключается в объявлении строковых констант для всех событий определенного класса события (подкласс flash.events.Event
) в самом подклассе этого события. Например, все константы событий мыши объявлены в MouseEvent
, все связанные с меню события определены в MenuEvent
и т. Д.
Это соглашение поможет вам в завершении кода, если вы используете компилятор Flex mxmlc. Допустим, вы добавили следующий тег метаданных поверх определения класса (MyClass).
[Event(name="randomEvent", type="com.domain.events.CustomEvent")]
public class MyClass extends EventDispatcher { }
Теперь вы объявляете экземпляр этого класса и вводите addEventListener:
var myClass:MyClass = new MyClass();
myclass.addEventListener(
Вы получите CustomEvent.RANDOM_EVENT
в раскрывающемся списке автозаполнения. Без тега метаданных он просто выдаст вам два элемента по умолчанию (активировать и деактивировать). Тег метаданных сообщает компилятору, что этот класс отправляет событие класса CustomEvent
и типа randomEvent
- и компилятор предполагает, что строковая константа определена в соответствии с соглашением, и предоставляет в качестве опции CustomEvent.RANDOM_EVENT.
Автозаполнение может по-прежнему работать, если вы объявите строковую константу в SomeOtherClass
и предоставите имя этого класса в теге метаданных - но это может ввести в заблуждение, поскольку данный класс не отправляет событие SomeOtherClass