这是做什么var index_num:Number = 1; var numFrames:int = this.dances_mc.totalFrames; (AS3)

时间:2012-08-16 18:28:58

标签: actionscript-3

我有点问题......我正在尝试为大学做我的朋友flash项目..这实际上非常简单,但我基本上不了解AS3,因为我停止使用闪光灯代替全职几年前的编码。无论如何它必须在tomo morn所以如果有人为我打破这个代码,我(和我的可怜的朋友)将永远负债..

这一行做了什么:

var numFrames:int = this.dances_mc.totalFrames;

在时间轴的第一帧上有一个名为dances_mc的符号,其中有5个左右的帧和一个停止功能。这些帧中的每一个都包含不同的文本和图像。有一个完整的演示,其中按钮导致文本和图像改变,并在最后循环回来。

文件中的AS如下所示:

trace("movie starts"+this.dances_mc.totalFrames);

var index_num:Number= 1;
var numFrames:int = this.dances_mc.totalFrames;

// Your code goes here

stop();

我需要编写一个事件处理程序,每次按下按钮时显示下一个舞蹈。然后改进事件处理程序,以便一旦显示最后一个舞蹈,按下按钮将再次显示第一个舞蹈。

提前致谢!!

1 个答案:

答案 0 :(得分:1)

有问题的行告诉你movieClip中有多少帧,所以你可以知道何时循环回到第一帧。

代替你的//你的代码就在这里:

function nextDance(e:MouseEvent = null):void {
    index_num++;  //increment your current index when the button is clicked
    if(index_num > numFrames){  //if your index is higher than the total amount of frame, go back to the first one
        index_num = 1;
    }
    this.dances_mc.gotoAndStop(index_num); //go to the frame of the new current index;
}

yourButton.addEventListener(MouseEvent.CLICK,nextDance,false,0,true);