Actionscript 3 停止脚本x秒
我对动作脚本还不熟悉,我想暂停一下代码本身,但我看过的所有教程和库似乎都更关注于停止电影剪辑。似乎还需要使用计时器调用函数,但我只想让它等待几秒钟 我想要达到的目标: 希望在继续下一个函数之前完成一个函数 守则: (代码的功劳归于Garry Law。使用他的代码提供更好的清晰度)Actionscript 3 停止脚本x秒,actionscript-3,timer,Actionscript 3,Timer,我对动作脚本还不熟悉,我想暂停一下代码本身,但我看过的所有教程和库似乎都更关注于停止电影剪辑。似乎还需要使用计时器调用函数,但我只想让它等待几秒钟 我想要达到的目标: 希望在继续下一个函数之前完成一个函数 守则: (代码的功劳归于Garry Law。使用他的代码提供更好的清晰度) 代码无法工作的原因是,在计时器结束之前,所有代码都已被读取。您需要向计时器事件添加侦听器。例如: function PlayGame() { PauseThenDisplayText1(1); } funct
代码无法工作的原因是,在计时器结束之前,所有代码都已被读取。您需要向计时器事件添加侦听器。例如:
function PlayGame() {
PauseThenDisplayText1(1);
}
function PauseThenDisplayText1(sec) {
trace('timer starts 1');
var timer1:Timer = new Timer (sec*1000,1);
timer1.start();
timer1.addEventListener(TimerEvent.TIMER,onTimer);
function onTimer(evt:TimerEvent):void{
trace('timer event triggered 1');
timer1.removeEventListener(TimerEvent.TIMER,onTimer);
Display_Screen.text = "Get Ready";
//now that first timer finishes, start next one
PauseThenDisplayText2(1);
}
}
function PauseThenDisplayText2(sec) {
trace('timer starts 2');
var timer2:Timer = new Timer (sec*1000,1);
timer2.start();
timer2.addEventListener(TimerEvent.TIMER,onTimer);
function onTimer(evt:TimerEvent):void{
trace('timer event triggered 2');
timer2.removeEventListener(TimerEvent.TIMER,onTimer);
Display_Screen.text = "Start Game";
}
}
所以我尝试了这个方法,但实际上不起作用,因为两个计时器几乎同时启动。意思是我从来没见过“准备好”。再次寻找一种暂停脚本的方法,以避免进入第二个计时器。暂停显示文本(1,“准备就绪”)。暂停然后显示文本(1,“开始”)。为了清晰起见,我将编辑上面的代码,以便读者使用您提供的代码阅读,如果您同意的话?请随意。我已经更新了代码以显示如何进行这两个调用
function PlayGame() {
PauseThenDisplayText1(1);
}
function PauseThenDisplayText1(sec) {
trace('timer starts 1');
var timer1:Timer = new Timer (sec*1000,1);
timer1.start();
timer1.addEventListener(TimerEvent.TIMER,onTimer);
function onTimer(evt:TimerEvent):void{
trace('timer event triggered 1');
timer1.removeEventListener(TimerEvent.TIMER,onTimer);
Display_Screen.text = "Get Ready";
//now that first timer finishes, start next one
PauseThenDisplayText2(1);
}
}
function PauseThenDisplayText2(sec) {
trace('timer starts 2');
var timer2:Timer = new Timer (sec*1000,1);
timer2.start();
timer2.addEventListener(TimerEvent.TIMER,onTimer);
function onTimer(evt:TimerEvent):void{
trace('timer event triggered 2');
timer2.removeEventListener(TimerEvent.TIMER,onTimer);
Display_Screen.text = "Start Game";
}
}