В чем разница между event.bubbles
и false
для любого события и установкой event.stopPropagation()
или stopImmediatePropagation()
во время обработки события?
Я использую Flex4 с AS3.
В чем разница между event.bubbles
и false
для любого события и установкой event.stopPropagation()
или stopImmediatePropagation()
во время обработки события?
Я использую Flex4 с AS3.
Настройка bubbles
до false
означает, что событие вообще не пузыривает список отображения.
stopPropagation()
и stopImmediatePropagation()
сделать текущий прослушиватель событий - последний, чтобы обработать событие.
Разница между stopPropagation()
и stopImmediatePropagation()
заключается в том, что stopImmediatePropagation()
не только не помешает событию перейти к следующему node, но также предотвратит захват любых других слушателей этого node.
Информация, найденная в этой статье - Введение в обработку событий в ActionScript 3.0 является более показательным и понятным. Это улучшит принятый выше ответ byJJason Sturges.
Событие пузырьков и захват событий - это два лица событий. Если вы делаете event.bubbles в false, это означает, что событие помечено как событие без пузырьков.
пузырьки. Указывает, является ли событие событием, которое пузырится (и захватывает). Это не означает, что событие прошло или проходит этап захвата или пузырьков, но это скорее событие, которое может быть.
Ниже изображения (из приведенной выше статьи) показано, как событие проходит процесс.
Разница stopPropagation()
и stopImmediatePropagation()
будет более понятной в следующих изображениях.
StopPropagation:
StopImmidiatePropagation:
Посмотрите на пример:
object.addEventListener( MouseEvent.CLICK, functionOne );
object.addEventListener( MouseEvent.CLICK, functionTwo );
Если functionOne
содержит event.stopPropagation()
, то также будет вызываться functionTwo
.
Если он содержит event.stopImmediatePropagation()
, functionTwo
будет проигнорирован.