1. ホーム
  2. actionscript-3

[解決済み】e.targetとe.currentTargetの違いについて

2022-03-29 07:53:31

質問

違いがよくわからない。どちらも同じように思えるが、違うのだろうか。

どちらかを使用する場合の例があれば教えてください。

どのように解決するのですか?

ベンの回答は完全に正しいので、彼の言うことを心に留めておいてください。これからお話しすることは、完全な説明ではありませんが、とても簡単に方法を覚えることができます。 e.target , e.currentTarget は、マウスイベントとディスプレイリストに関連して動作します。

e.target = マウスの下にあるもの(benさんが言うように...イベントのトリガーとなるもの)です。 e.currentTarget = ドットの前のもの... (以下略)

つまり、インスタンス名が "btns" であるクリップの中に10個のボタンがあり、それを実行すると。

btns.addEventListener(MouseEvent.MOUSE_OVER, onOver);
// btns = the thing before the dot of an addEventListener call
function onOver(e:MouseEvent):void{
  trace(e.target.name, e.currentTarget.name);
}

e.target は10個のボタンのうちの1つになり e.currentTarget は常に"btns"クリップとなります。

注目すべきは、MouseEventをROLL_OVERに変更したり、プロパティの btns.mouseChildren をfalseに設定します。 e.targete.currentTarget は、どちらも常に "btns" になります。