Вызывайте функцию Flash AS3 каждые 20 секунд - PullRequest
1 голос
/ 28 ноября 2011

Как установить функцию увеличения в AS3 Flash. Я пытаюсь запустить функцию увеличения при запуске моего видео, а затем запускать эту функцию каждые 20 секунд, пока видео не остановится.

что-то вроде:

    my_player.addEventListener(VideoEvent.COMPLETE, completePlay);
    my_player.addEventListener(VideoEvent.PLAYING_STATE_ENTERED, startPlay);

   function startPlay(){
       startInc();
       //OTHER items are started and set within this function that do not have to do with the incremented function.
    }


   function completePlay(){
       //This is where the startInc is stopped but not removed since it will be used again.

    }


     function startInc(){
          //This function should run every 20 seconds.
     }

Ответы [ 2 ]

5 голосов
/ 28 ноября 2011

Используйте таймер вокруг VideoEvents вашего игрока.

package
{
    import flash.display.Sprite;
    import flash.events.TimerEvent;
    import flash.events.VideoEvent;
    import flash.utils.Timer;

    public class IncrementTimer extends Sprite
    {

        private var my_player:*;

        private var timer:Timer;

        public function IncrementTimer()
        {
            my_player.addEventListener(VideoEvent.COMPLETE, completePlay);
            my_player.addEventListener(VideoEvent.PLAYING_STATE_ENTERED, startPlay);
        }

        protected function startPlay(event:VideoEvent)
        {
            timer = new Timer(20000);
            timer.addEventListener(TimerEvent.TIMER, startInc);
            timer.start();
        }

        protected function completePlay(event:VideoEvent)
        {
            timer.reset();
        }

        protected function startInc(event:TimerEvent)
        {
            // called every 20-seconds
        }

    }
}
1 голос
/ 28 ноября 2011
var i:uint;

function startPlay(){
    i=setInterval(startInc, 20000);
}


function completePlay(){
    clearInterval(i);
}


function startInc(){
     //This function will run every 20 seconds.
}
...