Подтвердить что ты не робот

Событие Bubbling и прекращение распространения

В чем разница между event.bubbles и false для любого события и установкой event.stopPropagation() или stopImmediatePropagation() во время обработки события?

Я использую Flex4 с AS3.

4b9b3361

Ответ 1

Настройка bubbles до false означает, что событие вообще не пузыривает список отображения.

stopPropagation() и stopImmediatePropagation() сделать текущий прослушиватель событий - последний, чтобы обработать событие.

Разница между stopPropagation() и stopImmediatePropagation() заключается в том, что stopImmediatePropagation() не только не помешает событию перейти к следующему node, но также предотвратит захват любых других слушателей этого node.

Ответ 2

Информация, найденная в этой статье - Введение в обработку событий в ActionScript 3.0 является более показательным и понятным. Это улучшит принятый выше ответ byJJason Sturges.

Событие пузырьков и захват событий - это два лица событий. Если вы делаете event.bubbles в false, это означает, что событие помечено как событие без пузырьков.

пузырьки. Указывает, является ли событие событием, которое пузырится (и захватывает). Это не означает, что событие прошло или проходит этап захвата или пузырьков, но это скорее событие, которое может быть.

Ниже изображения (из приведенной выше статьи) показано, как событие проходит процесс.

Event capturing and bubbling

Разница stopPropagation() и stopImmediatePropagation() будет более понятной в следующих изображениях.

StopPropagation:

stopPropagation

StopImmidiatePropagation:

stopImmediatePropagation

Ответ 3

Посмотрите на пример:

object.addEventListener( MouseEvent.CLICK, functionOne );

object.addEventListener( MouseEvent.CLICK, functionTwo );

Если functionOne содержит event.stopPropagation(), то также будет вызываться functionTwo. Если он содержит event.stopImmediatePropagation(), functionTwo будет проигнорирован.