Сравнение модели событий с обратными вызовами

Используйте обычные обратные вызовы вместо модели событий.

Модель событий ActionScript 3.0 основана на принципе отправки объектов. Она объектно ориентирована и оптимизирована для повторного использования кода. Метод dispatchEvent() циклически обрабатывает список прослушивателей и вызывает метод обработчика событий для каждого зарегистрированного объекта. Но у модели событий есть один недостаток: за время работы приложения может быть создано слишком много объектов.

Представьте себе, что временная шкала отправляет событие, указывающее на окончание последовательности анимации. Чтобы создать уведомление, можно отправить событие из конкретного кадра на временной шкале, как показано ниже.

dispatchEvent( new Event ( Event.COMPLETE ) );

Класс Document может прослушивать событие с помощью следующего кода.

addEventListener( Event.COMPLETE, onAnimationComplete );

Этот подход не является неправильным, однако использование собственной модели событий может замедлять работу и использовать больше ресурсов памяти, чем традиционная функция обратного вызова. Объекты событий создаются и хранятся в памяти, что снижает производительность. Например, при прослушивании события Event.ENTER_FRAME в каждом кадре создается объект события для обработчика. Особенно серьезное снижение производительности может наблюдаться при работе с экранными объектами за счет фаз захвата и цепочек. При сложном списке отображения для этого потребуется много ресурсов.