event.bubbles
イベントのtofalse
と、イベントの設定event.stopPropagation()
または処理中の違いは何 stopImmediatePropagation()
ですか?
AS3でFlex4を使用しています。
event.bubbles
イベントのtofalse
と、イベントの設定event.stopPropagation()
または処理中の違いは何 stopImmediatePropagation()
ですか?
AS3でFlex4を使用しています。
この記事にある情報-ActionScript3.0でのイベント処理の概要は、よりわかりやすく、理解しやすいものです。これにより、@JasonSturgesによる上記の受け入れられた回答が強化されます。
イベントバブリングとイベントキャプチャは、イベントの2つの面です。event.bubblesをfalseにすると、そのイベントは非バブルイベントとしてマークされます。
バブル:イベントがバブル(およびキャプチャ)するイベントであるかどうかを示します。これは、イベントがキャプチャまたはバブルフェーズを通過した、または通過していることを意味するのではなく、それが可能なイベントの一種です。
下の画像(上記の記事から)は、イベントがプロセスをどのように通過するかを示しています。
との違いは、次の画像でより明確になりますstopPropagation()
。stopImmediatePropagation()
StopPropagation:
StopImmidiatePropagation:
に設定bubbles
するfalse
と、イベントが表示リストをまったく表示しなくなります。
stopPropagation()
stopImmediatePropagation()
現在のイベントリスナーを最後にイベントを処理します。
stopPropagation()
との違いはstopImmediatePropagation()
、stopImmediatePropagation()
イベントが次のノードに移動するのを防ぐだけでなく、そのノード上の他のリスナーがイベントをキャプチャするのを防ぐことです。
例を見てください:
object.addEventListener( MouseEvent.CLICK, functionOne );
object.addEventListener( MouseEvent.CLICK, functionTwo );
が含まれている場合functionOne
はevent.stopPropagation()
、functionTwo
も呼び出されます。が含まれている場合event.stopImmediatePropagation()
、functionTwo
は無視されます。