![]() |
Прокричать событие "глобально"
Возникла бредовая идея от переизбытка лени, но всё таки спрошу, представьте что есть 10 вложенных друг в друга объектов и самый глубокий диспатчит событие, которое должен услышать самый верхний. Как то можно упростить процедуру диспатчинга или обязательно через точку указывать все объекты вглубь при подписывании объекта на слушатель?
|
bubble`ing? :)
|
а поподробнее?)
|
да нет, почему же?
Не так давно с этим боролся =) Есть объект "кнопка", не важно на каком она уровне, важно что она кнопка и она исполняет какое ни будь действие! Далее, к примеру, привяжем её к интерфейсу "IButton" в котором укажем для всех объектов "кнопка" метод "function onClick(ar:Function):void;". Код AS3:
|
так что лисенер в вашем примере надо на stage подписывать или на тот объект в котором эта кнопка где то там находится?
|
нет, только на стэйдж.
Добавлено через 11 минут Код AS3:
|
Цитата:
|
Цитата:
|
Цитата:
Код AS3:
|
это событие всплывает дальше по дисплейЛисту Пока в каком-то листенере не пропишешь event.stopPropagation();
Чтоб его услышать выше надо подписаться на какой-то из родителей того кто диспатчил. например: окна, а окне панель, в панели кнопка, которая диспатчит. панель подписывается на кнопку. окно подписывается на панель а мейн подписывается на окно. и все они получают одно и то же событие. |
| Часовой пояс GMT +4, время: 17:51. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.