如果是currentframe,则为ActionScript 3按钮

时间:2012-07-07 17:22:29

标签: button actionscript if-statement frame

我有一个简单的按钮,我想做一些过渡。
如果当前帧为1,我想播放帧2.
如果当前帧是2,我想播放第3帧 如果当前帧为3,我想播放第1帧。
为什么我的脚本在ActionScript 3.0中不起作用?感谢。

buton1.addEventListener(MouseEvent.CLICK, buton1Click);

function buton1Click(event:MouseEvent):void{
    if(currentFrame == 1){
      gotoAndStop(2); 
    }
    if(currentFrame == 2){
      gotoAndStop(3); 
    }
    if(currentFrame == 3){
      gotoAndStop(1); 
    }
}

2 个答案:

答案 0 :(得分:2)

您的if块始终为真 - 您移动到下一帧而不是测试您是否在该帧上。

鉴于您的按钮跨越时间轴,如下所示:

timeline

您的代码将是:

stop();

button1.addEventListener(MouseEvent.CLICK, button1Click);

function button1Click(event:MouseEvent):void
{
    switch (currentFrame)
    {
        case 1:
            gotoAndStop(2);
            break;
        case 2:
            gotoAndStop(3);
            break;
        case 3:
            gotoAndStop(1);
            break;
    }
}

答案 1 :(得分:1)

stop();
stage.addEventListener(MouseEvent.CLICK, button1Click);

function button1Click(event:MouseEvent):void {
    this.gotoAndStop((this.currentFrame % this.totalFrames) + 1);
}

//this way you can change the timeline without changing code