动作脚本3没有功能的监听器

时间:2014-09-05 06:22:07

标签: actionscript-3 while-loop listener break

问题:

有没有办法在不调用函数的情况下使用点击监听器?我昨天才开始采取行动脚本,所以请原谅我的问题看起来是否天真。

问题原因:

我希望在MouseEvent.OnClick发生时突破while循环。问题是当在Listener函数中使用一个函数时,它只会突破为自己定义的函数,而不是我陷入的while循环。

function PlayGame():Void {
    while (true) {
        OnAndOff.addEventListener(MouseEvent.CLICK):void{ //Removed the ,function part
            PowerButton.Switch();
            break;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这不是最好的方法是在as3中使用无限循环,因为as3有单线程。这意味着当你开始无限循环时,应用程序将会冻结。 AS3具有基于事件的体系结构,因此任何用户交互都会调度某些事件。

如果您需要在用户点击OnAndOff时调用PowerButton.Switch(),只需在事件处理程序中调用它:

OnAndOff.addEventListener(MouseEvent.CLICK, onOnAndOffClick); // somewhere on initialize   

function onOnAndOffClick(event:MouseEvent):void {
    PowerButton.Switch();
}

如果你需要使用类似于无限循环的方法,你可以使用ENTER_FRAME事件:

stage.addEventListener(Event.ENTER_FRAME, someFunction);

function someFunction(event:Event):void {  // this function will be called automatically on each frame
    // some code...
}