如何停止在flex中获取鼠标单击事件
问题描述:
我已经做了一个层次结构,其中有一个主页面,使用add元素我附加了一个组件类型为mxml的组。单击主页面上的一个按钮时,应该在该组类型的mxml组件中添加类型组的子项以及两个按钮。现在使用其中一个按钮,我附加了另一个组件mxml类型组。问题是,即使它们重叠,我仍然可以超过第一组组件mxml的子组。我怎样才能停止这个鼠标事件发生。如何停止在flex中获取鼠标单击事件
答
我认为这些事件通常会冒泡到父组件。 您可以尝试使用您的鼠标点击事件侦听器下面的代码来阻止进一步的传播:
private function onMouseClicked(event: MouseEvent): void {
event.stopPropagation();
... do whatever you wanted when smth was clicked ...
}
答
通过设置启用,mouseChildren,将mouseEnabled设置为false,将禁用整个组件和它的孩子。下面的例子
private var myPreviousGroupComponent:Group = null;
function addNewGroup():void
{
if(myPreviousGroupComponent != null)
{
myPreviousGroupComponent.enabled = false;
myPreviousGroupComponent.mouseChildren = false;
myPreviousGroupComponent.mouseEnabled = false;
}
var newGroup:Group = new Group();
addElement(newGroup);
myPreviousGroupComponent = newGroup;
}
它最好放一些mxml代码来解释你的层次结构。无论如何,就我的查询而言,您可以在事件处理函数中处理事件后使用event.stopImmediatePropagation()。 –
像@ M.D。说一些代码会非常有帮助 –
发布一些代码,不知道你想要什么,通过添加mouseChildren = false和mouseEnabled = false,鼠标事件不会生成。 –