2011-10-28 8 views
0

私はas3初心者です。私はこの奇妙な問題を経験しています。 2つの子、テキスト(TextField)、画像アイコン(MyIcon型)を持つボタン(タイプ:MyButton)を作成しました。 次に、ボタンにeventlistener mouse_clickを追加しました。As3 - 子hereditイベントリスナー。どのように停止する?

テキストをクリックするとすぐに、ハンドラ関数のe.targetがMyButton型として認識されます。それ以外の場合、画像アイコン(ボタンの子)をクリックすると、e.targetはMyButtonではなくMyIconタイプになります。

どうすればこの問題を防ぐことができますか?すべてのクリックがボタンに記録されている必要があります。ここでは、ハンドラー機能に必要な属性をいくつか保存しています。

ありがとうございました。

答えて

0

代わりにe.currentTargetを使用してください。 MouseEventが現在バブリングしているオブジェクトを返します。 e.targetは、MouseEventが実際に開始したオブジェクトを返します。

イベントバブリングhereをお読みください。把握することは非常に重要な概念です。

+0

ボタンの 'mouseChildren'プロパティを' false'に設定することもできます。これにより、ターゲットは常にボタン自体であることが保証されますが、ボタンの下位の子にはロールオーバーとボタンの効果が無効になります。 e.currentTargetを使用するとおそらく最高です。 – gthmb

関連する問題