我有一个VBox,我指定了一个处理程序来点击,在VBox内部我有组件,如图像和文本,没有分配处理器点击。单击文本和图像时是否会调用click函数?如果不是如何在不单独分配处理程序的情况下如何实现,而是在容器级别? 感谢
答案 0 :(得分:2)
点击Flex中的“气泡”事件。当你点击一个图像时,它会冒泡到它的父级,然后是父级的父级,依此类推,直到不再有父级为止。
如果其中任何一个具有点击侦听器,则会在冒泡过程中触发它们时触发。
同样,如果currentTarget
将引用具有侦听器的对象,则target
将是实际单击的对象。
因此,在您的情况下,如果他们单击图像,事件将冒泡到触发事件的容器,在您的侦听器函数中,单击的图像将是event.target,容器将是event.currentTarget。
同样在冒泡过程中,它实际上从根父进程开始,这称为捕获阶段,然后冒泡回来。除非您在事件侦听器中指定useCapturePhase = true
,否则您的事件将在其重新起泡时触发。这就是你如何阻止一个事件去看它的孩子。如果你使用捕获阶段然后在事件监听器内调用event.stopPropagation()
,那么容器将接收事件但子图像不会。
答案 1 :(得分:0)
这个问题的答案花了一个小时......尝试它可能会更快。 :)
但是,是的,点击事件会冒泡到父容器。将处理程序添加到VBox应该没问题。
答案 2 :(得分:0)
我非常确定VBox之类的容器不会发送点击事件;除非他们从孩子们身上冒出来。
但是,点击容器中的项目会触发容器上的监听器,因为Click事件会冒泡。