繁体   English   中英

在动作脚本3中循环播放动画片段

[英]Loop movieclip in actionscript 3

我正在尝试使动画片段从特定帧开始播放3次然后停止。 我的动画片段在关键帧中。 我尝试了几种不同的方法,并且不能限制循环-它一直在继续。

首先,我尝试将此AS嵌入到第1帧的动画片段(mc_enlightened_nut_glow)中:

for (var i:Number=1; i<=3;i++){ 
  this.gotoAndPlay(1)
}
this.stop();

然后,我尝试删除该AS,并将其放入整个电影的最后一帧(第132帧)中,我有一个stop();

for (var i:Number=1; i<=3;i++){ 
mc_enlightened_nut_glow.gotoAndPlay(1)
}
stop();

在这两种情况下,剪辑都会继续播放。 我究竟做错了什么?

您需要在MovieClip动画的“循环”之前定义的变量(例如,在第1帧var counter:int = 0 )在第132帧处递增。此时,请检查该变量是否递增到大于或等于3的值,然后停止。 否则gotoAndPlay(2)。
所有这些都假设您不想将代码放入外部.as文件中-这是一种更加灵活的工作方式。

var loopCounter:int = 0;

最后一帧

if(loopCounter < 3){
    gotoandPlay(1);
    loopCounter ++;
 }

在第一帧上:

var currentLoops:uint = 0;
var maxLoops:uint = 10; // desired loops

在第二帧上:

currentLoops++;
if (currentLoops == maxLoops) {
    stop();
}

在最后一帧:

gotoAndPlay(2); // the frame with the second code (increasing current loops)

粗糙,但应该可以正常工作。

您不需要任何迭代。 您将需要第一个框架中的代码,最后一个框架(第132个框架)中的代码,以及用于存储当前循环的变量:

至于第一帧中的代码:

if(this.loopCount == undefined){
    //Initiate our stuff
    //Only 3 loops...
    this.loopCount = 3;
    //Code will be invoked only once
    //Deside here, about your starting frame
    //Start first time from the third frame
    gotoAndPlay(3);
}

最后一帧的代码:

//We have visited last frame
if(--this.loopCount <= 0){
    stop();
    //No more loops!
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM