0

我对 Flash 有点陌生。在开发电影时,我引入了 3 层顺序动画,我决定要循环 X 次。所以我复制了帧,创建了一个新的电影剪辑元件,将帧粘贴到其中,然后删除了舞台上的原始剪辑并将这个新剪辑作为实例 ( my_animation) 拖到它的位置。到目前为止一切都很好。

但是,当我播放整部电影时,会my_animation无限循环播放,因此我在该影片剪辑中添加了 stop() 动作。那行得通-播放一次。然后,我在主场景的最后一个关键帧上添加了以下内容,以尝试让 my_animation 循环 X 次:

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

但是,my_animation仍然只播放一次。它似乎没有像我预期的那样循环。我也尝试用包含影片剪辑的帧替换my_anmiation.play()gotoAndPlay(117)117仍然相同。

任何帮助表示赞赏。谢谢

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

1
2
3
4

…ETC。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 回答