1

我有一个简单的按钮,我想做一些转换。
如果当前帧为 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); 
    }
}
4

2 回答 2

2

您的if块始终是正确的-您移动到下一帧,然后测试您是否在该帧上。

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

时间线

您的代码将是:

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;
    }
}
于 2012-07-07T21:35:18.453 回答
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
于 2014-10-23T23:43:11.050 回答