我想避免用户触发的鼠标事件不会被分派到他们的目标对象,从而有效地“冻结”用户的 GUI。
在一个示例应用程序中,mx.controls.Button
我只调用addEventListener
了一个按钮以获取鼠标事件的通知。在事件处理程序中,我调用Event::stopImmediatePropagation
了该事件,假设这将“丢弃”该事件。单击按钮将调用我的事件处理程序,但按钮被“单击”(它动画并触发了一个事件)。
我怎么能这样做?
我想避免用户触发的鼠标事件不会被分派到他们的目标对象,从而有效地“冻结”用户的 GUI。
在一个示例应用程序中,mx.controls.Button
我只调用addEventListener
了一个按钮以获取鼠标事件的通知。在事件处理程序中,我调用Event::stopImmediatePropagation
了该事件,假设这将“丢弃”该事件。单击按钮将调用我的事件处理程序,但按钮被“单击”(它动画并触发了一个事件)。
我怎么能这样做?
button.mouseEnabled = false;
button.mouseChildren = false;
应该管用
根据您的界面的先进程度,您可以在所有内容之上抛出一个对象(s:Rect 中的 s:Group 可以工作),将宽度和高度设置为 100%,并禁用 mouseChildren
使用 removeEventListener()
var b:Button = new Button();
function init():void
{
b.addEventListener(MouseEvent.CLICK, onButtonClick);
}
function onButtonClick(event:MourseEvent):void
{
b.removeEventListener(MouseEvent.CLICK, onButtonClick);
}