События Flex проходят в неиерархической структуре, например, через респондента фреймворка - PullRequest
0 голосов
/ 13 августа 2011

говорят, что приложение имеет панель, а на панели есть кнопка и textField или textArea. мы нажимаем на кнопку, чтобы нажать службу, скажем, через cairngorm framework.

Жизненный цикл Events следует циклу захвата-цели-пузыря в иерархии отображения, как событие MouseClick для кнопки будет вызывать обработчики для слушателей, прикрепленных к кнопке и / или панели и / или приложению и / или сцене, поскольку поток движется в этом направлении.

Как работает событие в неиерархической структуре, например, результат от службы запускает пользовательское событие DataRectained. у нас есть слушатель, прикрепленный к панели / кнопке для этого события dataRectained. Как этот слушатель получает информацию? как жизненный цикл события входит в эту картину?

Может кто-нибудь объяснить это?

Спасибо!

Ответы [ 3 ]

1 голос
/ 14 августа 2011

Так как это не DisplayObject, событие имеет только целевую фазу.Это означает, что работают только слушатели, прикрепленные к объекту, который идентичен объекту в свойстве target события.Следовательно, не-DisplayObject могут только отправлять События себе.По крайней мере, так я это понимаю.

В ответе на связанный вопрос обсуждается вопрос написания пользовательских EventDispatcher, которые позволили бы всплывать для не-DisplayObject.

0 голосов
/ 16 августа 2011

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

Ссылка на другой вопрос была полезна - Flex Custom Event диспетчеризация Важным моментом является то, что - экземпляр диспетчера должен быть таким же. мы можем сохранить собственный глобальный диспетчер одноэлементных событий для нашего приложения или мы можем использовать stage / systemManager / FexGlobals.toplevelapplicaton для целей, которые могут оказаться неэффективными.

0 голосов
/ 15 августа 2011

Если вы отправляете пользовательское событие на UIComponent Flex с помощью dispatchEvent, UIComponent заботится о том, чтобы пропустить событие через иерархию отображения, пока флаг bubbles в объекте Event имеет значение true.

...