devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

親子関係がある場合、親のADDED_TO_STAGEイベントリスナー内で子をaddChildすると、子のADDED_TO_STAGEイベントが2度発生する。

見事にはまりました。よく知られた現象のようです。

ADDED_TO_STAGEイベントが2度もいらない場合(おそらく殆どの場合)は、イベントリスナーの中でリスナーを削除するようにしましょう。イベントのハンドリングでは、意図しないイベントを拾ってしまわないように注意する必要がありそうです。

出力ウィンドウには、以下のように表示されます。

EventTest:onAddedToStage
MC1:onAddedToStage
MC2:onAddedToStage
MC2:onAddedToStage

MC2:onAddedToStageが2回表示されています。

MC2.asのイベントリスナー(onAddedToStage)でリスナーを削除するように修正します。

出力ウィンドウの内容は、以下のように変わりました。

EventTest:onAddedToStage
MC1:onAddedToStage
MC2:onAddedToStage

Pocket

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Trackback URL: