Показать сообщение отдельно
Старый 29.10.2009, 19:59
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 20  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Цитата:
Сообщение от TommyLee Посмотреть сообщение
Я имел вот что: например, import MouseEvent. Теперь, если среда флеш получит мышиное событие, она создаст экземпляр класса MouseEvent. Который, в свою очередь, пойдет всем подписчикам.
Нет, import просто указывает компилятору, что данный класс используется в коде и позволяет получить к нему доступ без указания пакета. Можно обойтись и без импорта, но в этом случае всё время придётся вместо MouseEvent писать flash.events.MouseEvent.

Диспетчер (в том числе то, что вы называете "среда") рассылает события всем подписчикам, вне звависимости от того, произведён ли в их коде импорт соответствующего класса. А то, на какое событие слушатель подписан, определяется не классом события, а строкой, которая была передана в качестве параметра type метода addEventListener (и доступна через Event.type).

Например, мы можем подписаться на MouseEvent.MOUSE_DOWN, а параметр метода-слушателя объявить как e:Event. И события будут приходить всё равно, более того, не возникнет никаких ошибок (так как MouseEvent наследует Event). Мы просто не сможем получить доступ к свойствам и методам, определённым непосредственно в MouseEvent (localX, например).


Последний раз редактировалось SamFR; 29.10.2009 в 20:05.