如何停止在flex中获取鼠标单击事件

时间:2011-09-27 12:10:03

标签: flex actionscript flash-builder

我已经创建了一个层次结构,其中有一个主页面,使用add element我已经附加了一个类型为group的组件mxml。点击主页面上有一个按钮,它应该在该组类型mxml组件中添加类型为group的子节点以及两个按钮。现在使用其中一个按钮我附加另一个组件mxml类型组。问题是即使它们重叠,我仍然可以超过第一组组件mxml的子组。我怎么能阻止这个鼠标事件发生。

2 个答案:

答案 0 :(得分:1)

我认为这些事件通常会冒泡到父组件。 您可以尝试在鼠标单击事件侦听器中使用以下代码来阻止进一步传播:

private function onMouseClicked(event: MouseEvent): void {
    event.stopPropagation();
    ... do whatever you wanted when smth was clicked ...
}

答案 1 :(得分:1)

通过将enabled,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;
}
相关问题