Flash as2 вводит задержку в последовательном коде - PullRequest
0 голосов
/ 11 августа 2011

В моем флеш-проекте я хотел ввести небольшие задержки между действиями, выполняемыми кодом в прогоне.

Например:

for(i=0; i<5; ++i) {
    someMovieClip[i]._visible = false;
    //One second of delay
}

Возможно ли реализовать эту одну секунду задержкивыше?(в AS2)

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Для этого вы должны использовать интервалы, а не цикл for.Примерно так:

var i:Number = 0;
var loops:Number = 5;
var intID:Number;

myFunction();

function myFunction() {
    someMovieClip[i]._visible = false;
    i++;
    if(intID == undefined) intID = setInterval(myFunction,1000);
    if(i == loops) clearInterval(intID);
}

После первого вызова функции устанавливается интервал, который вызывает функцию снова каждую секунду, пока не будет выполнено условие, необходимое для очистки интервала.

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

0 голосов
/ 17 июня 2013

Это будет работать -

stop();

var interval:Number = setInterval(
function():Void {
    gotoAndPlay(1);
    clearInterval(interval);
},
1000
);
...