![]() |
Как восстановить цепочку диспетчеризации событий?
У меня такая ситуация: Сцена, на ней по орбитам движутся планеты. По клику на каждой планете рядом с ней создается контейнер с кнопками - возможные действия на этой планете. Контейнер следует за планетой. Чтобы контейнер с кнопками был всегда сверху и не перекрывался другими планетами, он чайлдится не к своей планете а к сцене на верхний уровень. Соответственно, когда происходит клик по кнопке, цепочка диспетчеризации оказывается "разорвана" т.е. событие клика в фазе захвата/всплытия отрабатывается: сцена - контейнер - кнопка - контейнер - сцена. Планета оказывается выкинутой из цепочки. А мне бы хотелось иметь ее на фазе захвата, чтобы помечать ее как текущую и легко получать ее id, а не через навороченную цепочку parent.leader.parent... (leader это указатель на планету, чтобы иметь возможность перемещать кнопки следом за ней). На ум приходит слушать событие в контейнере и диспатчить его планете, но тогда планета получит событие в фазе TARGET, а мне это не нужно, мне нужно отработать клик на ней в фазе захвата. Можно что-то придумать в данной ситуации или к планете можно добраться только через прямую цепочку указателей?
|
А почему нельзя держать Dictionary со ссылками на планеты / контейнеры?
|
А как контейнер движется за планетой? У него есть ссылка на нее?
|
Цитата:
Добавлено через 38 секунд Цитата:
|
Цитата:
Эта функция помещает, контейнер с кнопками, на самый верх, контейнера с планетами. Код AS3:
|
Цитата:
|
Цитата:
|
Цитата:
|
Я не внимательно прочитал, вопрос, поэтому некорректный дал ответ.
Я имел ввиду, к планете, а не в клип с планетой, как у вас и сделано. Сори. |
Цитата:
Цитата:
Код AS3:
|
1. при создании контейнера с кнопками передать ему ссылку на планету к которой он относится
2. в контейнере повесить слушателя на клики по кнопкам 3. в контейнере в обработчике кликов вызвать функцию планеты по прямой ссылке полученной при создании |
Цитата:
|
если окно без привязки к планете, например подтверждение с кнопками "да" "нет", то зачем ему о ней знать? пускай оно возвращает результат своих действий тому кто его создал.
планета общается с тулбаром, тулбар с диалоговым окном, окно при этом не знает о планете абсолютно ничего, всю необходимую информацию ему пердоставил тублар (в данном случае, текст вопроса), и результат работы проделанной окном (ответ на вопрос) обработает и передаст планете тоже тулбар. Но если окно имеет более тесные отношения с планетой, например оно выводит список спутников и позволяет добавлять удалять их, то можно передать и окну ссылку на планету, чтобы не было испорченного телефона |
Цитата:
|
| Часовой пояс GMT +4, время: 14:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.