Количество таймера во Вспышке AS3

У меня есть 2 фильма (swf), которые должны бежать от единственного файла.

У них обоих есть отдельные предварительные погрузчики.

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

Это - код.

var today:Date = new Date();

var currentTime = today.getTime();

var targetTime =  currentTime + 20000;


this.onEnterFrame = function()
{
//Determines how much time is left.  Note: Leaves time in milliseconds
var timeLeft = targetTime - currentTime;

if(timeLeft<0)
{

    gotoAndPlay(3);
    }

}

Это дает предупреждение - Сцена 1, Слой 'Действия', Структура 2, Линия 15 Предупреждений: 1090: проблема Миграции: onEnterFrame не вызывается автоматически Flash player во время выполнения в ActionScript 3.0. Необходимо сначала зарегистрировать этого укладчика для события, используя addEventListener ('enterFrame', callback_handler).

Как обращаться с ним?

0
nl ja de

1 ответы

Это - ActionScript 3, таким образом, AS2-стиль на функциях больше не работает. Вместо того, чтобы использовать это:

this.onEnterFrame = function() {
   //code...
}

Используйте это:

this.addEventListener(Event.ENTER_FRAME, function (e:Event) {
   //code...
});

В AS3 новая модель событий заменяет много автоматически названных функций AS2, которое оказывается хорошей вещью. Как только вы привыкаете к новому синтаксису, это значительно более прочно, чем что-нибудь, что AS2 должен был предложить.

Даже при том, что это зафиксирует ошибку, ваш код все еще ничего не сделает. Есть многократные проблемы с самим кодом, но действительно, вы не должны приближаться к нему тот путь, так или иначе. Используйте Таймер класс вместо этого!

var timer:Timer = new Timer(20000, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (e:TimerEvent) {
    gotoAndPlay(3);
});
timer.start();
0
добавлено
Благодарность u:), который помог
добавлено автор Gaurav Wadhwani, источник