Цитата:
Сообщение от TommyLee
Я имел вот что: например, import MouseEvent. Теперь, если среда флеш получит мышиное событие, она создаст экземпляр класса MouseEvent. Который, в свою очередь, пойдет всем подписчикам.
|
Нет,
import просто указывает компилятору, что данный класс используется в коде и позволяет получить к нему доступ без указания пакета. Можно обойтись и без импорта, но в этом случае всё время придётся вместо
MouseEvent писать
flash.events.MouseEvent.
Диспетчер (в том числе то, что вы называете "среда") рассылает события всем подписчикам, вне звависимости от того, произведён ли в их коде импорт соответствующего класса. А то, на какое событие слушатель подписан, определяется не классом события, а строкой, которая была передана в качестве параметра
type метода
addEventListener (и доступна через
Event.type).
Например, мы можем подписаться на
MouseEvent.MOUSE_DOWN, а параметр метода-слушателя объявить как
e:Event. И события будут приходить всё равно, более того, не возникнет никаких ошибок (так как
MouseEvent наследует
Event). Мы просто не сможем получить доступ к свойствам и методам, определённым непосредственно в
MouseEvent (
localX, например).