Функция ожидания Action Script 2.0

Ответов: 5


1

Попробуйте этот код: он использует что-то, называемое закрытием (посмотрите, если вам интересно)

function wait(){
    stop();
    var myInterval = setInterval(function(){
        _level0.menu_number2 = 0;
        gotoAndStop(17);
        clearInterval(myInterval);
    }, 5*1000); // stop for 5 seconds
    return function(){ clearInterval(myInterval); };
}
var abortFunction = wait(); // Calls wait(), interval starts ticking
abortFunction(); // Aborts the interval

Вы также можете вставить глобальную переменную и проверить ее, но это просто загрязняет глобальное пространство имен.


0

Вы всегда можете просто очиститьInterval (myInterval), если они нажмут кнопку пропуска. Или без необходимости переверните его в функцию: function stopwait () {clearInterval (myInterval); };

Чтобы проверить номера кадров, которые вы могли бы использовать: if (_root._currentFrame <17)


0

Начиная с Flash Player 8, есть встроенная функция setTimeOut, которую вы можете использовать для реализации паузы. Я предполагаю, что это внутренняя оболочка вокруг setInterval и т. Д. Он работает следующим образом:

function onContinue( message )
{
   trace("continue saying: " + message);
}

setTimeOut( onContinue, 1000, "hello" );

Первым параметром является функция вызова. Второй параметр - время ожидания в миллисекундах (1000 = 1 секунда), а третий параметр является необязательным и может использоваться для передачи значения для обратного вызова.


0

Думаю, я должен обновить эту проблему, поскольку раньше я был преждевременным.

После некоторого тестирования я обнаружил, что код Zenazn нуждается в дополнительном добавлении, поэтому я добавил линию _currentFrame от Эрика Муйзера, и все это отлично работает, поэтому еще раз спасибо всем.

Вот ActionScript:

function wait(){
    stop();
    var myInterval = setInterval(function(){
      if(_currentFrame < 15){//This statement checks to see if the play head has moved past frame 15
      gotoAndStop(17);
    }
        clearInterval(myInterval);
    }, 5*1000); // stop for 5 seconds
    return function(){ clearInterval(myInterval); };
}
var abortFunction = wait(); // Calls wait(), interval starts ticking

0

вы можете использовать библиотеку tweenlite http://blog.greensock.com/tweenliteas2/

TweenLite.delayedCall(delay:Number, onComplete:Function)

то, если кто-то пропустит это, вы можете позвонить

TweenLite.killDelayedCallsTo(function:Function) 

который убивает оригинал delayedCall.

очень легкий и мощный.

Надеюсь, что это поможет, Джош

вспышка, ActionScript, ActionScript-2,
Похожие вопросы
Яндекс.Метрика