Показать сообщение отдельно
Старый 16.01.2012, 17:40
Korchy вне форума Посмотреть профиль Отправить личное сообщение для Korchy Найти все сообщения от Korchy
  № 1  
Ответить с цитированием
Korchy
 
Аватар для Korchy

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
По умолчанию Как восстановить цепочку диспетчеризации событий?

У меня такая ситуация: Сцена, на ней по орбитам движутся планеты. По клику на каждой планете рядом с ней создается контейнер с кнопками - возможные действия на этой планете. Контейнер следует за планетой. Чтобы контейнер с кнопками был всегда сверху и не перекрывался другими планетами, он чайлдится не к своей планете а к сцене на верхний уровень. Соответственно, когда происходит клик по кнопке, цепочка диспетчеризации оказывается "разорвана" т.е. событие клика в фазе захвата/всплытия отрабатывается: сцена - контейнер - кнопка - контейнер - сцена. Планета оказывается выкинутой из цепочки. А мне бы хотелось иметь ее на фазе захвата, чтобы помечать ее как текущую и легко получать ее id, а не через навороченную цепочку parent.leader.parent... (leader это указатель на планету, чтобы иметь возможность перемещать кнопки следом за ней). На ум приходит слушать событие в контейнере и диспатчить его планете, но тогда планета получит событие в фазе TARGET, а мне это не нужно, мне нужно отработать клик на ней в фазе захвата. Можно что-то придумать в данной ситуации или к планете можно добраться только через прямую цепочку указателей?