2017-04-25 18 views
0

나는 Greensock TweenMax 타임 라인을 사용하여 actionscript 3에서 일하고 있습니다. 나는 두 개의 버튼 (맨 위로 가기, 멈춤/재생 버튼)이있는 한 페이지 스크롤러가 있습니다. 스크롤러는 자동으로 4 초 지연으로 onLoad를 재생합니다. 정지/재생 버튼을 누르면 지연이 멈추지 않습니다. 기능을 사용하려면 4 초 정도 기다려야합니다. 또한 4 초 지연은 스크롤러가 처음 실행될 때만 발생합니다. 스크롤러가 반복 될 때마다 4 초 지연이 발생하도록하려면 어떻게해야합니까? 지연을 무시하고 재생하기 위해 정지/재생 버튼을 어떻게 얻을 수 있습니까? 저는 이틀 동안이 작업을 해왔고 성공하지 못한 다양한 기법 (루프, 타이머, 지연된 호출 등)을 시도했습니다. 누구든지 아이디어가 있다면 크게 감사하겠습니다. 타임 라인이 시작TweenMax에서 지연을 덮어 쓰려면 어떻게해야합니까?

1) 코드 :

myTween = new TweenMax(content_mc, 60, {delay:4, y:22, ease: Power0.easeNone, onComplete: restartFromTop }); 

2)이 기능은 중지/재생 버튼

private function toggler(e:MouseEvent = null):void 
    {   

      if (playState == true){ 
      toggleBtn.gotoAndStop(2); 
      myTween.pause(); 
      playState = false; 
      trace("MC is now paused and stopped"); 
     } 

      else if(playState == false) { 
      myTween.resume(); 
      toggleBtn.gotoAndStop(1); 
      playState = true; 
      trace("MC is resumed from pause"); 
     } 
    } 

3)이 반복 될 때이 함수는 스크롤러의 다시 시작을 제어하는 ​​제어한다.

private function restartFromTop():void 
     {  
      myTween.restart() 
      playState = true; 
     } 

4)이 기능은 상단 버튼

private function backToTop(event:MouseEvent):void 
     { 
      myTween.reverse(); 

      if (playState == true){ 
       myTween.restart(); 
       myTween.resume();//stop animation 
       //toggleBtn.gotoAndStop(2);//changes button to pause 
       toggleBtn.buttonMode = true; 
       trace("page is scrolling"); 
      } 

      if (playState == false){ 
       myTween.restart(); 
       myTween.pause();//stop animation 
       trace("play button is paused"); 
       trace(timer); 
      } 

//Adds a hand cursor on the button and adds a click event to the button. 
      toggleBtn.buttonMode = true; 
      toggleBtn.addEventListener(MouseEvent.CLICK, toggler); 
     } 

답변

1

난 당신이 직면하고있는 첫 번째 문제를 재현 할 수로 등을 제어하고, 그 pauseresume와 지연의 문제입니다. 나는 4 초의 지연 시간을 가진 간단한 트윈을 시도해 보았고 어떤 지체없이 트윈을 멈추고 다시 시작할 수 있었다. restart와 다른 문제에 대한

는 TweenMax restart 함수는 인수의 몇 가지, 그리고 기본적으로 false로 설정되어 includeDelay:Boolean되는 첫 번째 걸립니다. 이 속성을 true로 설정하면 문제가 해결됩니다. 워드 프로세서에서

발췌 :

includeDelay : 부울 (기본값 = false)를는 - 다시 시작하면 지연 (있는 경우) 영광 여부를 결정합니다. 예를 들어 트윈이일 때 새 TweenLite (mc, 2, {x : 100, delay : 1})와 같이 1 초의 지연이 발생합니다. 그리고 나중에 restart()가 호출되면 즉시 시작되지만 restart (true)로 설정하면 지연 시간이 적용되어 이 1 초 동안 시작되지 않습니다.

전체 문서 그래서, 다음과 같은 코드가 다시 시작 문제를 해결해야

here를 찾을 수 있습니다 : 첫 번째 문제에 대한

myTween.restart(true); 

을, 당신이 그것을 재현하는 최소한의 시나리오를 만드는 것이 좋습니다 , 그리고 있다면, 내 대답에 코멘트를 게시하십시오.

희망이 도움이됩니다. 건배.

+0

감사합니다. 그것은 확실히 도움이 :) – latoyale