2014-09-09 2 views
0

Я новичок в скриптах действий, и я хочу немного свернуть код сам, но все обучающие программы и библиотеки, на которые я смотрел, похоже, больше сосредотачиваются на остановке видеоклипа. Также кажется, что вам нужно вызвать функцию с помощью таймера, но я просто хочу, чтобы она подождала несколько секунд.Остановить скрипт за x секунд

То, что я хочу добиться:

Хочет функцию, чтобы закончить до перехода к следующей функции.

Кодекс: (. Заслуга код идет в Garry закона, используя свой код, чтобы обеспечить лучшую четкость)

function PlayGame() { 
     PauseThenDisplayText(1,"Get Ready"); 
     PauseThenDisplayText(1,"Get Ready"); 
    } 

    function PauseThenDisplayText(sec,txt) { 
     trace('timer starts'); 
     var timer1:Timer = new Timer (sec*1000,1); 
     timer1.start(); 
     timer1.addEventListener(TimerEvent.TIMER,onTimer); 
     function onTimer(evt:TimerEvent):void{ 
      trace('timer event triggered'); 
      timer1.removeEventListener(TimerEvent.TIMER,onTimer); 
      Display_Screen.text = txt; 
     } 
    } 

ответ

0

причина ваш код не будет работать происходит потому, что код все читают перед вашим таймер заканчивается. Вам нужно добавить слушателей к событию Timer. Например:

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

Благодарю вас, я попробую это – Cornelis

+0

Итак, я пробовал это, но на самом деле это не сработало, поскольку оба таймера начинаются примерно в одно и то же время. Это означает, что я никогда не вижу «готовьтесь». Опять ищет способ сделать паузу, чтобы сценарий переходил ко второму таймеру. PauseThenDisplayText (1, «Get Ready»). Пауза thenDisplayText (1, «Пуск»). Я собираюсь отредактировать приведенный выше код для ясности для чтения с помощью кода, который вы предоставили, если это нормально с вами? – Cornelis

+0

не стесняйтесь. Я обновил код, чтобы показать, как вы сделаете 2 вызова –

Смежные вопросы