Flex如何在容器内单击事件工作?

时间:2010-07-16 16:36:42

标签: flex flash air adobe

我有一个VBox,我指定了一个处理程序来点击,在VBox内部我有组件,如图像和文本,没有分配处理器点击。单击文本和图像时是否会调用click函数?如果不是如何在不单独分配处理程序的情况下如何实现,而是在容器级别? 感谢

3 个答案:

答案 0 :(得分:2)

点击Flex中的“气泡”事件。当你点击一个图像时,它会冒泡到它的父级,然后是父级的父级,依此类推,直到不再有父级为止。

如果其中任何一个具有点击侦听器,则会在冒泡过程中触发它们时触发。

同样,如果currentTarget将引用具有侦听器的对象,则target将是实际单击的对象。

因此,在您的情况下,如果他们单击图像,事件将冒泡到触发事件的容器,在您的侦听器函数中,单击的图像将是event.target,容器将是event.currentTarget。

同样在冒泡过程中,它实际上从根父进程开始,这称为捕获阶段,然后冒泡回来。除非您在事件侦听器中指定useCapturePhase = true,否则您的事件将在其重新起泡时触发。这就是你如何阻止一个事件去看它的孩子。如果你使用捕获阶段然后在事件监听器内调用event.stopPropagation(),那么容器将接收事件但子图像不会。

答案 1 :(得分:0)

这个问题的答案花了一个小时......尝试它可能会更快。 :)

但是,是的,点击事件会冒泡到父容器。将处理程序添加到VBox应该没问题。

答案 2 :(得分:0)

我非常确定VBox之类的容器不会发送点击事件;除非他们从孩子们身上冒出来。

但是,点击容器中的项目会触发容器上的监听器,因为Click事件会冒泡。