2011-10-28 79 views
0

我是一個as3新手。我遇到了這個奇怪的問題。我創建了一個帶有兩個子項,一個文本(TextField)和一個圖像圖標(類型:MyIcon)的按鈕(類型:MyButton)。 然後我在我的按鈕上附加了一個eventlistener mouse_click。As3 - 兒童遺傳事件監聽器。如何停止?

只要我點擊文本,handeler函數的e.target被識別爲MyButton類型。否則,如果我點擊圖像圖標(按鈕子按鈕),則e.target是MyIcon類型,而不是MyButton。

我該如何預防?我需要將所有的點擊記錄在按鈕上,我已經在handeler函數中存儲了一些我需要的屬性。

謝謝。

回答

0

改爲使用e.currentTarget。它返回MouseEvent當前冒泡的對象。 e.target返回MouseEvent實際開始的對象。

閱讀關於活動冒泡here。這是一個非常重要的概念。

+0

您也可以將按鈕的'mouseChildren'屬性設置爲'false'。這將確保目標始終是按鈕本身,但它會禁用任何按鈕子子項的滾動和按鈕效果。使用e.currentTarget可能是最好的。 – gthmb