AS3: анимация с задержкой ввода кадра

У меня есть анимация затухания с использованием ENTER_FRAME. Я хочу, чтобы затухание начиналось через 2-3 секунды. Как я могу создать эту задержку?

txtAlert.addEventListener(Event.ENTER_FRAME,animAlert);

function animAlert(e:Event) {
    if(e.target.alpha>0) {
        e.target.alpha-=0.01;
    } else {
        e.target.parent.removeChild(e.target);
        e.target.removeEventListener(Event.ENTER_FRAME,animAlert);
    }
}

person Abdulla    schedule 07.02.2011    source источник


Ответы (1)


Вы должны использовать таймер:

var timer:Timer = new Timer(3000, 1);
    timer.addEventListener(TimerEvent.TIMER, action);
    timer.start();

function action(evt:TimerEvent):void{
     txtAlert.addEventListener(Event.ENTER_FRAME,animAlert);

     trace("Times Fired: " + evt.currentTarget.currentCount);
     trace("Time Delayed: " + evt.currentTarget.delay);
}

Кстати, вам следует взглянуть на библиотеки анимации, такие как Twiner, которые сделают вашу жизнь намного проще.

person shannoga    schedule 07.02.2011
comment
Я не знаком с библиотекой Twiner, но TweenMax от Greensock (greensock.com/tweenmax) — это очень известная библиотека для скриптовой анимации, очень стабильная и гибкая. - person epologee; 07.02.2011