2011-10-31 23 views
0

CLICKイベントに関連付けられたMouseEvent関数を持つMovieClipがあります。このMovieClipの中に私はTextFieldを持っています。AS3の子供から親へのトリガーイベント

私はMovieClipをクリックすると、ハンドラがうまく動作します。今度は、このTextFieldをクリックしたときと同じ動作が必要ですが、ハンドラ関数を変更する必要はありません。つまり、ユーザーがMovieClipではなくTextFieldをクリックした場合、e.targetからe.target.parentに変更したくありません。

どうすればいいですか?

私のソースコードの一部:事前に

public function Main(){ 
    var m = new menu(); 
    menuMng.addChild(m); 
    m.addEventListener(MouseEvent.CLICK, openMenu); 
} 

private function openMenu(e:MouseEvent):void{ 
    // Do some stuff 
} 

ありがとう!

答えて

4

これはよくある質問です。event.targetの代わりにevent.currentTargetプロパティを使用すると、イベントリスナーを追加したオブジェクトを参照できます。より詳細な回答については

この質問(それのフレックス面の心配はありません - これは標準のActionScript 3の動作に関連する)チェックアウト: What is the difference between target and currenttarget in flex?

+0

簡単でクリアです。本当にありがとう! :) –

+0

..ありがとう、働いた^^ –

1

をあなたは偽のにmouseChildrenプロパティを設定する問題を修正することができますMovieClip m。この場合、ユーザーがmをクリックした場合のように、TextfieldをクリックするとMouseEventがトリガーされます。 わかりやすくするために:

var m = new menu(); 
m.mouseChildren = false; 
... 

私はこれがあなたに役立つことを願っています!

+0

ありがとう!以前の回答は私には大いに役立ちましたが、私はこれも有用であることを発見しました。 –

関連する問題