Проблема понимания распространения событий AS3EnterFrame

У меня проблемы с пониманием пути, по которому Событие EnterFrame идет для Распространения. Я понимаю, что у событий есть 3 фазы: захват, AtTarget и Bubbling.

Когда я смотрю на класс flash.events.Event, я вижу, что Event не Bubble.

Если я добавлю Eventlistener в любой DisplayObject, он получит событие Enter frame. Если я сделаю то же самое с useCapture = true, Событие не будет получено.

Но не должны ли все события пройти через фазу захвата? Если я проверяю цель Event, она возвращает получающий объект DisplayObject в качестве своей цели.

Изменяется ли цель для события EnterFrame при распространении или новое событие создается и передается каждому DisplayObject?

Сохраняет ли Flash отдельный список со всеми объектами DisplayObject? Поскольку событие EnterFrame даже получается, когда объект DisplayObject не добавляется в дерево отображения?

1 ответ

Решение

ENTER_FRAME (из ссылки AS3)

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

Итак, вернемся к вашему вопросу (ам):

Если я добавлю Eventlistener в любой DisplayObject, он получит событие Enter frame. Если я сделаю то же самое с useCapture = true, Событие не будет получено.

useCapture = true // это ничего не сделает, так как ENTER_FRAME не имеет "фазы захвата"

Но не должны ли все события пройти через фазу захвата?

Только события, которые имеют "фазу захвата"

Если я проверяю цель Event, она возвращает получающий объект DisplayObject в качестве своей цели.

Это правильно

Изменяется ли цель для события EnterFrame при распространении или новое событие создается и передается каждому DisplayObject?

Он отправляется индивидуально для каждой цели.

Сохраняет ли Flash отдельный список со всеми объектами DisplayObject? Поскольку событие EnterFrame даже получается, когда объект DisplayObject не добавляется в дерево отображения?

Это ответ в комментарии Sunil D

Другие вопросы по тегам