0

私はフラッシュに少し慣れていません。ムービーを作成しているときに、3 層のシーケンシャル アニメーションを導入しました。これを X 回ループさせることにしました。そこで、フレームをコピーし、新しいムービー クリップ シンボルを作成してフレームを貼り付け、ステージ上のオリジナルを削除し、この新しいクリップをインスタンス ( my_animation) としてその場所にドラッグしました。これまでのところすべて順調です。

ただし、ムービー全体を再生するとmy_animation無期限にループするため、そのムービー クリップに stop() アクションを追加しました。それはうまくいきました-1回再生します。次に、メイン シーンの最後のキーフレームに次のアクションを追加して、my_animation を X 回ループさせようとしました。

var i = 1;
for (i = 1;i < 5;i++)
{
    my_animation.play();
}
stop();

ただし、my_animation再生はまだ 1 回のみです。期待どおりにループしていないようです。my_anmiation.play()また、ムービークリップを含むフレームをgotoAndPlay(117)どこに置き換えてみまし117たが、それでも同じです。

どんな助けでも感謝します。ありがとう

更新:trace(i);ループ内にステートメントを追加しました。[出力] タブに次のように表示されます。

1
2
3
4

…等。SO -my_animationループ内で発火していません。

4

1 に答える 1

0

my_animation.play(); を呼び出す場合 そのような「forループ」では、5回連続して呼び出すだけで、アニメーションが開始されます。

my_animation.play(); を呼び出す場合 my_animation のアニメーション中は何も起こりません。停止していれば機能します...

. そのため、アニメーションが終了したことを理解するために追加のコールバックをリッスンする必要があり、そのアニメーションを再び開始できます..

var animatedCount:int = 0;
my_animation.addFrameScript(my_animation.totalFrames-1, onMyAnimationEnds);
my_Animation.play();

function onMyAnimationEnds():void{
   animatedCount++;
   if(animatedCount < 5)
   {
      my_Animation.play();
   }
}

これにより、my_animation が 5 回アニメーション化されます...

于 2013-10-26T20:40:51.677 に答える