[英]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.