Actionscript 3 停止脚本x秒

Actionscript 3 停止脚本x秒,actionscript-3,timer,Actionscript 3,Timer,我对动作脚本还不熟悉,我想暂停一下代码本身,但我看过的所有教程和库似乎都更关注于停止电影剪辑。似乎还需要使用计时器调用函数,但我只想让它等待几秒钟 我想要达到的目标: 希望在继续下一个函数之前完成一个函数 守则: (代码的功劳归于Garry Law。使用他的代码提供更好的清晰度) 代码无法工作的原因是,在计时器结束之前,所有代码都已被读取。您需要向计时器事件添加侦听器。例如: function PlayGame() { PauseThenDisplayText1(1); } funct

我对动作脚本还不熟悉,我想暂停一下代码本身,但我看过的所有教程和库似乎都更关注于停止电影剪辑。似乎还需要使用计时器调用函数,但我只想让它等待几秒钟

我想要达到的目标:

希望在继续下一个函数之前完成一个函数

守则: (代码的功劳归于Garry Law。使用他的代码提供更好的清晰度)


代码无法工作的原因是,在计时器结束之前,所有代码都已被读取。您需要向计时器事件添加侦听器。例如:

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";
    }
}