2011-10-31 81 views
0

我有一個與CLICK事件關聯的MouseEvent功能的影片剪輯。在這個MovieClip裏面我有一個TextField。AS3中從兒童到父母的觸發事件

所以,當我點擊我的MovieClip時,處理程序工作正常。現在當我點擊這個TextField時,我需要同樣的行爲,但是沒有改變我的處理函數。我的意思是,如果用戶單擊TextField而不是MovieClip,我不想將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.currentTarget屬性而不是event.target來引用添加事件偵聽器的對象。

如需更詳細的解答看看這個問題(不要擔心它的Flex的方面 - 這涉及到標準的ActionScript 3的行爲): What is the difference between target and currenttarget in flex?

+0

簡單明瞭。非常感謝! :) –

+0

..謝謝,那工作^^ –

1

可以解決問題上mouseChildren屬性設置爲false MovieClip m。在這種情況下,如果用戶點擊m,單擊textfield將觸發MouseEvent。 爲清楚:

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

我希望這將是有用的爲您服務!

+0

謝謝!以前的答案幫助了我很多,但我也發現這個有用,所以我投票它:) –