Joe*_*ter 0 actionscript-3 while-loop
var lastRecordedTime:Number = getTimer();
while(getTimer()>lastRecordedTime+10000)
{
}
Run Code Online (Sandbox Code Playgroud)
我想让我的游戏处于等待状态.我应该像这样使用while循环还是有更高效的方法呢?
永远不要在AS3中使用这样的方法.AS3有一个严重的缺点,因为它不支持多线程.只要该计时器继续运行,这就会彻底崩溃程序,如果用户不断尝试点击它或其他东西,Windows 7会特别崩溃.
试试这个:
private var m_tmr:Timer = new Timer(10000, 1);
.
.
.
private function func():void
{
.
.
.
m_tmr.addEventListener(TimerEvent.TIMER, tick);
m_tmr.start();
}
private function tick(pEvent:TimerEvent):void
{
// pick back up in here
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是它是异步的,所以你可能需要添加一些特殊的逻辑来同时忽略某些类型的事件和事物,这取决于你想要完成的事情.但是使用while循环只是睡眠线程在AS3中无法解决.