根据设定定时器AS3循环影片剪辑 [英] AS3 loop movieClip based on set timer

查看:148
本文介绍了根据设定定时器AS3循环影片剪辑的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

欲通过敲击空格键两次来设置的时间的持续时间。然后,我希望有一个影片剪辑到的时间,准确的量打,然后循环再次在对的时间设定金额发挥,等等。直到我再次两次按下空格键设置不同的时间量。

I want to set a duration of time by hitting space bar twice. I then want a movieclip to play for that exact amount of time, then loop to play again at for that set amount of time, and so on. until I set a different amount of time by hitting the space bar twice again.

    var beat:int;
var beatcount:int;
var tempopress:int;
var num:Number;

num = 0;
tempopress = 0;

stage.addEventListener(KeyboardEvent.KEY_DOWN,checker);
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.Event;



  var myTimer:Timer=new Timer(20,0);
  myTimer.addEventListener(TimerEvent.TIMER, stopWatch);



    function stopWatch(event:TimerEvent):void {
  beatcount = Number(myTimer.currentCount);

  }



    function checker(e:KeyboardEvent){  
     if(e.keyCode==Keyboard.SPACE){



  if (tempopress == 0) {
  trace('start');
  beatcount = 0;
  myTimer.reset();
  myTimer.start();
  tempopress = 1;

      } else {
          trace('stop');
          myTimer.stop();
          trace(beatcount);
          tempopress = 0;
          }


      }

 }


 stage.addEventListener(Event.ENTER_FRAME, loopPlayback);

 function loopPlayback() {
     var loopTimer:Timer=new Timer(20,beatcount);
       myTimer.addEventListener(TimerEvent.TIMER, loopWatch);
 }

     function loopWatch(event:TimerEvent):void {
        if (MovieClipMan.currentFrame >= MovieClipMan.totalFrames ){
        MovieClipMan.gotoAndStop(1);
    } else {
          MovieClipMan.nextFrame();
    }
    }

我知道这是一个烂摊子哈哈。请帮忙! :]

I know it's a mess haha. Please help! :]

推荐答案

我想也许尝试这样的事情,这基本上是检查,看是否做到循环或不每一帧。

I'd perhaps try something like this, which essentially is checking to see whether to do the loop or not each frame.

var timeStart:Number;
var loopDuration:Number;
var timeLastLoop:Number;

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onKeyDown(e:KeyboardEvent):void {
    if (e.keyCode == Keyboard.SPACE) {
        if (!timeStart) { // First time SPACE is hit
            timeStart       = getTimer();

        } else { // Second time SPACE is hit
            loopDuration    = getTimer() - timeStart; // set the loop duration
            timeStart       = NaN; // reset the start time
            loop();
        }
    }
}

function onEnterFrame(e:Event):void {
    if (loopDuration && timeLastLoop) {
        if (getTimer() >= timeLastLoop + loopDuration) { // if it's time to loop
            loop();
        }
    }
}

function loop():void {
    timeLastLoop    = getTimer();
    someMovieClip_mc.gotoAndPlay(0);
}

这篇关于根据设定定时器AS3循环影片剪辑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆