2013-10-26 99 views
0

我对Flash有点新。当我开发我的电影时,我介绍了3层顺序动画,我决定我想循环X次。所以我复制了这些帧,创建了一个新的Movie Clip符号,将这些帧粘贴到它中,然后删除舞台上的原始文件并将其作为实例(my_animation)拖拽到位。迄今为止都很好。

但是,当我播放整个电影时,my_animation无限循环,因此我在该影片剪辑中添加了stop()动作。这工作 - 玩一次。然后,我添加了以下作为行动的主要场景非常最后一个关键帧,试图得到my_animation循环X倍:父Flash内的影片剪辑移动停止整个影片

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

然而,my_animation仍然只播放一次。它似乎没有像我期望的那样循环。我也试过用替换gotoAndPlay(117),其中117是包含影片剪辑的框架,但仍然相同。

任何帮助表示赞赏。 谢谢

更新:我在循环中添加了trace(i);语句。在输出选项卡中,我看到:

1 
2 
3 
4 

...等等。 SO - my_animation不在循环内触发。

回答

0

如果你调用my_animation.play();与“for loop”一样,它只是连续调用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次......

+0

谢谢。您的代码导致整个场景1循环,因此我在第一个'my_animation.play();'调用之前添加了一个“stop()”。这防止场景1循环,事实上 - my_animation然后开始循环,如我所愿。然而,它继续永远循环.... – Tony

+0

一个小小的试验/错误,我已经通过'my_animation'中的'stop();'并添加一个'my_animation.stop();'到你的代码为'else my_animation.stop();'。谢谢 – Tony