![]() |
Модель Event'ов в ActionScript3
Здравствуйте, кто-нибудь (кроме разработчиков Adobe:)) до конца понимает всю модель распространения событий в AS3? Все видели эту схему распространения события со сцены до источника и обратно: захват, пузыри и т.д. Ну а если объект не в списке отображения? А если он вообще не DisplayObject? Вобщем ответьте, пожалуйста, мне на следующие вопросы:
1) Поток событий идет только по объектам-родителям источника? Типа: Код:
Stage -Код:
Stage -4) Дети targetObject не смогут поймать событие? 5) Как вообще посылать событие глубже targetObject? 6) Если targetObject создан, но не добавлен в список отображения или это класс не DisplayObject, то как будет происходить распространение события? 7) Можно диспачить событие в объект? Код:
someObject.dispatchEvent(new Event(...));:wacko: Вроде пока все... Ответьте, пожалуйста, кто как может :) |
1) Да.
2) Нет. 3) Внутри себя не смогут. 4) Внутри себя не смогут. 5) Никак. Зачем? 6) Если это не DisplayObject, то событие вообще нельзя послать, а если объект не добавлен в DisplayList, то за пределы самого объекта событие не уйдет. 7) Можно. Смысл может и есть, ведь вызов метода и отправка события - разные вещи. У меня не было необходимости в такой конструкции. |
1) От targetObject до Stage, а не так, как вы нарисовали (стрелки в другую сторону);
2) Не дойдет, только вверх по родителям (опять же, стрелки в другую сторону должны быть); 3) Не смогут; 4) Не смогут; 5) Вниз? 6) Никак не будет, бабблинг работает исключительно в display list; 7) Вы привели пример отправки события объектом someObject. Если же вам надо вызвать метод — вызовите его. |
> 6) Если это не DisplayObject, то событие вообще нельзя послать...
Т.е., события могуть отправлять и ловить только DisplayObject? О_о |
Цитата:
|
События могут отправлять EventDispatcher-ы , ловить всплывающие события могут только объекты в DisplayList. Если EventDispatcher не в DisplayList-е то и событие, посланое этим объектом смогут услышать только слушатели событий этого объекта.
|
А, да точно...
>1) От targetObject до Stage, а не так, как вы нарисовали (стрелки в другую сторону); http://riapriority.com/blogs/constantiner.php/c16/ Так они ж смотря в какой фазе, стрелочки-то... Или что вы имеете ввиду? > 7) Вы привели пример отправки события объектом someObject. Да, перепутал X_X Тогда так: можно ли по этой схеме: Код:
someObject.dispatchEvent(new Event(...)); |
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 17:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.