我习惯在AS2代码上执行此操作。
this.pause3Seconds = function () {
trace(_global.something(_root.somthing));
clearInterval(myInt);
};
var myInt = setInterval(this, "pause3Seconds", 3000);
现在尝试将其解析为class.as文件,会出现所有类型的迁移错误和警告。
所以我在这里。 任何人都知道如何在一个类中做到这一点。作为AS3方式文件?
我不按时间表工作。 (帧)
约翰
答案 0 :(得分:2)
您的AS2代码实际上并未暂停播放器({3}}将在此三秒内执行enterFrame
侦听器和鼠标/键侦听器。它只是确保方法pause3Seconds
将在三秒后调用。您可以使用Timer
类在AS3中实现类似的功能。
var timer:Timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER, onTimerTick);
function onTimerTick(e:TimerEvent = null):void
{
if(e)
{
trace("3 seconds completed");
Timer(e.target).removeEventListener(TimerEvent.TIMER, onTimerTick);
}
}
答案 1 :(得分:0)
var startTime = getTimer();
while (true)
{
if (getTimer() - startTime >= sleepTime)
{
//do something
break;
}
}
http://www.kirupa.com/forum/showthread.php?t=232714 - secocular's post
答案 2 :(得分:0)
@Allan:这将使你的flash代码抛出运行时错误(脚本花费的时间超过预期)。在函数内部睡觉总是一个坏主意。
@jon:这有点像'你的方式'解决方案:)
import flash.utils.*;//for setInterval and clearInterval
public class YourClass {
private var myInt:uint;
public function YourClass():void { //YourClass is the name of your class
myInt = setInterval(pause3Seconds, 3000);
}
public function pause3Seconds() {
trace("Whatever you want after 3 seconds");
clearInterval(myInt);
}
}
-bhups