Как работает событие нажатия Flex внутри контейнеров? - PullRequest
0 голосов
/ 16 июля 2010

У меня есть VBox, я назначил обработчик для нажатия, и внутри VBox у меня есть такие компоненты, как изображения и тексты, для которых обработчик клика не назначен.Будет ли вызываться функция щелчка, когда я нажимаю на текст и изображение?Если нет, то как я могу сделать это без индивидуального назначения обработчиков, но на уровне контейнера?Спасибо

Ответы [ 3 ]

2 голосов
/ 16 июля 2010

Клик по событиям «пузыря» во Flex. Когда вы нажимаете на изображение, оно всплывает до своего родителя, потом до родителя этого родителя и так далее, пока не останется больше родителей.

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

Также в том случае, если currentTarget будет ссылаться на объект, у которого есть прослушиватель, а target будет тем, что было фактически нажато.

Таким образом, в вашем случае, если они щелкают изображение, событие будет пузыриться до контейнера, инициирующего событие, в вашей функции слушателя щелкнутое изображение будет event.target, а контейнер - event.currentTarget. *

Также в процессе барботирования он фактически начинается с корневого родительского элемента вниз, это называется фазой захвата, а затем снова всплывает. Ваше событие сработает, когда оно всплывет, если вы не укажете useCapturePhase = true в прослушивателе событий. Вот как вы можете остановить событие от посещения его детей. Если вы используете фазу захвата, тогда вызовите event.stopPropagation() внутри прослушивателя событий, тогда контейнер получит событие, но дочернее изображение не будет.

0 голосов
/ 16 июля 2010

Я был почти уверен, что контейнеры, такие как VBox, не отправляют события click; если они не взорвались от детей.

Однако нажатие на элементы в вашем контейнере должно вызвать слушателя в вашем контейнере, так как событие Click всплывет.

0 голосов
/ 16 июля 2010

Потребовался час, чтобы ответить на этот вопрос ... возможно, было бы быстрее просто попробовать. :)

Но да, события click всплывают в родительские контейнеры. Добавление обработчика в VBox должно быть в порядке.

...