2011-05-13 2 views
0

타이머를 사용하여 한 번에 여러 무비 클립을 시작한 다음 다시 길이가 서로 다른 경우 반복하여 동기화를 다시 시작하는 방법은 무엇입니까?AS3 타이머를 사용하여 길이가 다른 무비 클립을 실행하고 반복하는 방법은 무엇입니까?

예를 들어 t = 0에서 3 개의 동영상 클립이 시작됩니다. 무비 클립 1의 길이는 3 초입니다. 무비 클립 2의 길이는 6 초입니다. 동영상 클립 3의 길이는 10 초입니다. 무비 클립 1은 무비 클립 2와 3 전에 끝나지 만 다른 무비 클립이 모두 끝날 때까지 다시 시작하지 않으려합니다.

또한 동영상 클립이 재생 시간 이후가 아니라 특정 시간 이후에 시작되도록 카운트 다운을 설정할 수 있습니까? 예를 들어 타이머 카운트 다운을 10 초에서 실행하는 대신 12:00 PM까지 카운트 다운 한 다음 무비 클립을 재생합니다. 이것이 가능하다면 누구든지 어떻게 보여줄 수 있습니까?

미리 감사드립니다.

답변

0

다음은 첫 번째 질문에 대한 답변입니다. 움직이는 MovieClips를 모두 mcs 배열에 추가하면됩니다.

var mcs:Array = [mc1,mc2,mc3]; 

// work out the longest running MovieClip 
var longest:MovieClip = mcs[0]; 

var i:MovieClip; 
for each(i in mcs) 
{ 
    if(i.totalFrames > longest.totalFrames) longest = i; 

    i.addEventListener(Event.ENTER_FRAME, animation); 
} 

/** 
* Check animation progress on each MovieClip 
*/ 
function animation(e:Event):void 
{ 
    var m:MovieClip = MovieClip(e.target); 

    if(m.currentFrame == m.totalFrames) 
    { 
     m.stop(); 

     if(m == longest) 
     { 
      var i:MovieClip; 
      for each(i in mcs) 
      { 
       i.gotoAndPlay(1); 

       // your own actions here 
       // for when all animation completes 
      } 
     } 
    } 
} 

는 후자의 질문에 관해서는, 나는 당신이하고 싶은 이유를 잘 모르겠지만, 여기에 간단한 충분히 접근 방식 :

var d:Date = new Date(); 
var time:String = d.getHours() + ":" + d.getMinutes(); 

var ran:Boolean = false; 
if(time == "12:00" && !ran) 
{ 
    ran = true; 
    // being your animations etc 
} 
0

를 사용하여 긴 클립이 코드 :

longestClip.addFrameScript(longestClip.totalFrames, restartAllMyClips); 

restartAllMyClips는 모두 다시 시작하는 기능입니다.

의미가 있습니까? 시간 문제에 대한

- 당신은 전화 당신이 매개 변수로 전달할 그 순간과 시간 사이의 시간의 양을 계산할 수있는 기능에 waitAndPlay (시간) 기본적으로

라는 함수 위의 해당 코드를 가질 수 있습니다 .

그런 다음 해당 기간 동안 타이머를 설정하기 만하면됩니다. restartAllMyClips를 실행하기 위해 해당 타이머에 리스너를 설정하십시오.

그래서 이런 식으로 뭔가 : - http://blog.rackdoll.nl/?p=118

+0

은 무엇인가 ** addFrameScript() ** 여기

var waitTimer:Timer = new Timer(duration, 1); waitTimer.addEventListener(TimerEvent.TIMER_COMPLETE, restartAllMyClips); waitTimer.start(); 

는 addFrameScript()에 관한 정보를입니까? – Marty

+0

부두입니다 :) 문서화되지 않은 함수입니다.별로 보지 못합니다. 하지만 이런 상황에 완벽하게 작동합니다! – prototypical

+0

아, 아주 멋지다. 내 대답 롤보다 조금 더 보인다. – Marty

관련 문제