2010-07-16 51 views
0

我有一個VBox,我分配了一個處理程序來點擊,而在VBox裏面,我有一些組件,比如圖像和文本,沒有處理程序分配給點擊。點擊文字和圖片時,點擊功能會被調用嗎?如果沒有,我怎麼能做到這一點,而不是單獨分配處理程序,而是在容器層面上分配處理程序? 謝謝Flex如何點擊事件在容器內工作?

回答

2

在Flex中單擊事件「泡泡」。當你點擊一張圖片時,它會冒泡到它的父母,然後是父母的父母,直到沒有父母離開。

如果其中任何一個具有點擊監聽器,它們將在冒泡進程中到達時觸發。

同樣在currentTarget將引用具有收聽者的對象,並且target將是實際點擊的對象。

因此,在你的情況下,如果他們點擊圖像,事件將觸發容器觸發事件​​,在你的監聽器函數中,點擊的圖像將是event.target,容器將是event.currentTarget。

另外在冒泡過程中,它實際上是從根父母開始向下,這被稱爲捕獲階段,然後氣泡備份。除非您在事件監聽器中指定了useCapturePhase = true,否則當事件回覆時您的事件將觸發。這就是你如何阻止事件發生給其子女。如果使用捕獲階段,則在事件偵聽器中調用event.stopPropagation(),那麼容器將接收事件,但子圖像不會。

0

對於這個問題的答案需要一個小時的時間......它可能會更快地嘗試它。 :)

但是,單擊事件冒泡到父容器。將處理程序添加到VBox應該沒問題。

0

我非常肯定,容器,如VBox不派遣點擊事件;除非他們從孩子們身上冒出來。

但是,單擊容器中的項目應觸發容器上的偵聽器,如Click事件氣泡。

相關問題