Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何防止Flex事件被分派到目标?_Apache Flex - Fatal编程技术网

Apache flex 如何防止Flex事件被分派到目标?

Apache flex 如何防止Flex事件被分派到目标?,apache-flex,Apache Flex,我希望避免用户触发的鼠标事件不会被分派到其目标对象,从而有效地“冻结”用户的GUI 在一个示例应用程序中,我只调用了一个按钮来获得通知。在事件处理程序中,我调用了事件,假设这将“丢弃”事件。单击该按钮将调用我的事件处理程序,但该按钮被“单击”(它设置了动画并触发了一个事件) 我怎么能这样做 button.mouseEnabled = false; button.mouseChildren = false; 根据您的界面的高级程度,您可以将一个对象(s:Group中的s:Rect可以工作)置于所

我希望避免用户触发的鼠标事件不会被分派到其目标对象,从而有效地“冻结”用户的GUI

在一个示例应用程序中,我只调用了一个按钮来获得通知。在事件处理程序中,我调用了事件,假设这将“丢弃”事件。单击该按钮将调用我的事件处理程序,但该按钮被“单击”(它设置了动画并触发了一个事件)

我怎么能这样做

button.mouseEnabled = false;
button.mouseChildren = false;

根据您的界面的高级程度,您可以将一个对象(s:Group中的s:Rect可以工作)置于所有对象之上,将宽度和高度设置为100%,并禁用鼠标儿童

使用removeEventListener()


嗯,很有趣-我可以在我的事件侦听器中设置这些属性(所以在目标接收事件之前)?我想这意味着我必须记住禁用鼠标交互的对象,以便在解冻GUI后可以重新启用它?不,您应该在单击之前执行此操作。你只需要禁用按钮吗?或者还有别的什么吗?我想禁用更多的对象-事实上,我想禁用除少数特殊对象之外的所有对象。我想我可以遍历对象层次结构并对所有对象执行此操作,但我想知道这是否会导致性能问题…或者如果没有将b声明为全局变量,请使用event.target.removeEventListener(…);
var b:Button = new Button();

function init():void
{
    b.addEventListener(MouseEvent.CLICK, onButtonClick);
}


function onButtonClick(event:MourseEvent):void
{ 
    b.removeEventListener(MouseEvent.CLICK, onButtonClick);
}