actionscript 3 - Evento de burbujas y Stop Propagation
actionscript-3 flex (3)
¿Cuál es la diferencia entre event.bubbles
y false
para cualquier evento, y establecer event.stopPropagation()
o stopImmediatePropagation()
al manejar el evento?
Estoy usando Flex4 con AS3.
Información encontrada en este artículo: la introducción al manejo de eventos en ActionScript 3.0 es más demostrativa y fácil de entender. Mejorará la respuesta aceptada anteriormente por @Jason Sturges.
El borrado de eventos y la captura de eventos son dos caras de los eventos. Si convierte event.bubbles en falso, significa que el evento está marcado como evento no burbujeante.
burbujas : Indica si el evento es o no un evento que burbujea (y captura). Esto no significa que el evento pasó o está pasando por una fase de captura o burbujas, sino que es un tipo de evento que sí lo puede hacer.
Debajo de la imagen (del artículo anterior) se muestra cómo el evento pasa por el proceso.
La diferencia de stopPropagation()
y stopImmediatePropagation()
será más clara en las siguientes imágenes.
StopPropagation:
StopImmidiatePropagation:
Mira el ejemplo:
object.addEventListener( MouseEvent.CLICK, functionOne );
object.addEventListener( MouseEvent.CLICK, functionTwo );
Si functionOne
contiene event.stopPropagation()
, se llamará a functionTwo
también. Si contiene event.stopImmediatePropagation()
, functionTwo
se ignorará.
Establecer bubbles
en false
significa que el evento no burbujea en absoluto en la lista de visualización.
stopPropagation()
y stopImmediatePropagation()
hacen que el último detector de eventos sea el último en procesar un evento.
La diferencia entre stopPropagation()
y stopImmediatePropagation()
es que stopImmediatePropagation()
no solo evitará que el evento se mueva al siguiente nodo, sino que también evitará que otros oyentes de ese nodo capturen sus eventos.