2017-04-25 28 views
0

私はGreensock TweenMaxタイムラインを使ってactionscript 3で作業しています。私は2つのボタン(トップに戻って、停止/再生ボタン)を備えた1ページのスクロールバーを持っています。 スクロールバーは自動的に4秒の遅れでonLoadを再生します。停止/再生ボタンを押すと、遅延を止めません。私はそれが機能する前に完全な4秒を待たなければなりません。また、4秒の遅延は、スクロールバーが初めて実行されたときにのみ発生します。 Scrollerが繰り返されるたびに4秒の遅延が発生するようにするにはどうすればよいですか?遅延/再生を無効にするには、どうすれば停止/再生ボタンを得ることができますか?私はこれを2日間働いて、さまざまなテクニック(ループ、タイマー、遅延コールなど)を成功させてみました。誰かがアイデアを持っているなら、私はそれを高く評価します。タイムラインを開始し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

関連する問題