Руководство по actionscript. часть 2, стр. 067
Недостаток проверки типов
в событийной модели языка ActionScript
Событийная модель ActionScript, основанная на приемниках, включает несколько различных участников: приемник события, объект, регистрирующий этот приемник, получатель события, событийный объект и имя события. Диспетчеризация определенного события (и его обработка) завершится успешно только в том случае, если все участники будут надлежащим образом взаимодействовать между собой. Для этого должны выполняться следующие основные условия.
? Должен существовать тип события, для которого регистрируется приемник.
? Должен существовать сам приемник.
? Приемник должен знать, как обрабатывать событийный объект, передаваемый в процессе диспетчеризации возникшего события.
? Объект, осуществляющий регистрацию приемника, должен поддерживать указанный тип события.
Когда приемник регистрируется в объекте для получения события, он вступает в соглашение, основанное на типах данных, которое гарантирует выполнение первых трех условий. Если это соглашение не выполняется, компилятор генерирует ошибку типа. Например, рассмотрим следующий код, описывающий и регистрирующий приемник, в котором умышленно допущены три нарушения (выделенные полужирным шрифтом) контракта приемника события:
urlLoader. addEventLi stener(Event. COMPLTE, completeLi stenr);
private function completeListener (e:MouseEvent):void { traceCLoad complete»);
}
В приведенном коде нарушения контракта приемника события заключаются в следующем.
? Константа Event. COMPLTE записана с ошибкой: пропущена буква Е. Компилятор сгенерирует ошибку, которая предупредит программиста о том, что тип события, для получения которого пытается зарегистрироваться приемник, не существует.