1

ageImg ボタン (swf のピンク色の画像) をクリックすると、他のすべての画像を非表示にする次の関数が呼び出され、ageism という単語がステージに移動しますが、何らかの理由で 1 秒後に空白になり、 ageFlash 関数が再び開始され、アニメーション全体が最初から開始されます。なぜループするのかわかりません。

[SWF ファイルへのリンク]

import com.greensock.TweenLite;
import com.greensock.TimelineLite;
import com.greensock.plugins.*;
import flash.events.MouseEvent;

var ageismTimeline:TimelineLite = new TimelineLite();

       function init():void{
            ageFlash();
            ageImg.ageism.visible=false;
            racImg.racism.visible=false;
            hatImg.hate.visible=false;
            sexImg.sexism.visible=false;
         }


        function ageFlash():void{
            ageImg.visible=false;
            ageImg.buttonMode = true;
            ageImg.addEventListener(MouseEvent.CLICK, stopPicLoop);
            TweenLite.delayedCall(1,racFlash);
         }

         function racFlash():void{
            racImg.visible=false;
            TweenLite.delayedCall(1,hatFlash);
         }

         function hatFlash():void{
            hatImg.visible=false;
            TweenLite.delayedCall(1,sexFlash);
         }

         function sexFlash():void{
            TweenLite.delayedCall(1,ageFlash);
            ageImg.visible=true;
            racImg.visible=true;
            hatImg.visible=true;
         }

         function stopPicLoop(event:MouseEvent):void{
                switch (event.type) {

                       case "click":

                          trace(event.type);
                              ageAni();

                              break;

                       case 2:

                              break;

                       case 3:

                              break;

                }
          }

          function ageAni():void{
            racImg.visible=false;
            hatImg.visible=false;
            sexImg.visible=false;
            ageImg.visible=true;
            ageImg.ageism.visible=true;
            ageismTimeline.from(ageImg.ageism,.5,{y:stage.stageHeight});

            trace('ageism');
         }
init();
4

1 に答える 1

1

racFlashメソッドで設定したメソッドへの遅延呼び出しを強制終了する必要がありageFlashます。そうしないと、コードは引き続き楽しくなります。TweenLite.killDelayedCallsToメソッドを使用してこれを行うことができます(ドキュメントを参照)。

function ageAni():void{
    racImg.visible=false;
    hatImg.visible=false;
    sexImg.visible=false;
    ageImg.visible=true;
    ageImg.ageism.visible=true;

    TweenLite.killDelayedCallsTo(racFlash); // kill the delayed call
    ageismTimeline.from(ageImg.ageism,.5,{y:stage.stageHeight});

    trace('ageism');
} 
于 2014-10-17T18:07:28.897 に答える