2011-08-05 4 views
0

MouseEvent.CLICK関数内では、通常、クリックしたムービークリップを処理するためにe.targetを使用しましたが、内部に子(テキストやその他のシンボルなど)がないムービークリップでのみ機能します。内部に子供がいる場合、eターゲットはMc内の子を返しますが、Mc自身は返しません。 e.currentTargetも機能しませんでした。それは[オブジェクトMovieClip]を返しましたが、Mcのインスタンス名は返しませんでした。とにかく私はそれを修正することができますか? ありがとうございます。クリックされたオブジェクト内の子オブジェクトではなく、どのオブジェクトに対処するか?

+0

子どもとのやり取りは必要ですか?そうでない場合は、mc.mouseChildren = falseを設定して子どもの相互作用を無効にすることができます – taskinoor

答えて

2

インスタンス名を取得するには、e.currentTarget.nameが必要です。

2

e.target =クリックされた要素。

e.currentTarget =リスナーが登録されている要素。

red.addEventListener(MouseEvent.MOUSE_CLICK, redClick); 

は、あなたが(インナーブルー1外)赤いボックスをクリックした場合::

e.target =赤

e.currentTarget =赤

青色のボックスを含む赤いボックスを想定し

青いボックスをクリックすると:

e.target =青

e.currentTarget =赤


あなたは子要素のためのマウスイベントを無効にすることができ、あなたの青いボックス派遣クリックイベントを防ぐために:

red.mouseChildren = false; 

あなたがして青色のボックスをクリックした場合:

e.target =赤

ムービークリップの子に伝播するイベントを停止する falseすることを目的とターゲットの mouseChildrenを設定

e.currentTarget =赤

1

関連する問題