В Flex / Actionscript, как мне обеспечить, чтобы все события проходили по одному дереву объектов независимо от цели? - PullRequest
0 голосов
/ 06 марта 2011

Я все еще работаю над проектом масштабируемого графа узлов.В настоящее время у меня есть проблемы с тем, что, как я знаю, должно быть относительно простым, но я не смог найти решение:

У меня есть множество объектов, многие из которых хранятся в других объектах (и перекрываются в физическом пространстве).Когда я приближаюсь к объекту, он начинает исчезать.В тот момент, когда он начинает исчезать, я загружаю дочерний объект (или создаю дочерний объект, если он не существует).Я хочу отключить способность родительского объекта отвечать на большинство событий.Исключением является колесо прокрутки, которое необходимо отправить обоим объектам одновременно, чтобы родительский элемент мог продолжать исчезать при увеличении масштаба. Попробуйте, как я мог, я не могу найти способ сказать Flex: «Эй, дляпрямо сейчас отправляйте события такого типа ТОЛЬКО на этот объект. "Я либо получаю переполнение стека диспетчеризации событий при попытке вручную перенаправить события, либо получаю события, которые не активируются в нужное время или на нужном объекте.Что я могу сделать?

1 Ответ

0 голосов
/ 06 марта 2011

Я хочу отключить родительский объект способность реагировать на большинство событий.

Вы не можете отключить способность объектов реагировать на события.

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

Вы можете удалить этот объект из списка отображения, чтобы его прослушиватели не включали события в их фазах захвата или всплытия. Если у этого объекта есть дочерние элементы, которые вы хотите отобразить, это не сработает.

Вы можете быть в состоянии что-то решить, когда дочерний объект вызывает stopPropogation () и / или stopImmediatePropogation () в своих собственных слушателях событий. Я считаю, что это может помешать обработчикам запускать родительский объект, но это может зависеть от того, как настроены ваши слушатели. Я не верю, что это будет иметь эффект, если вы слушаете фразу захвата.

Вы можете написать «осведомленные» обработчики событий, которые в основном говорят:

if (SomeConditionTrue) {return; }

У меня заканчиваются идеи. Но я уверен, что нет универсального способа сказать: «Не позволяйте этому компоненту реагировать на события»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...