【问题标题】:Actionscript 3 - jumping between frames in a MovieClip?Actionscript 3 - 在 MovieClip 中的帧之间跳转?
【发布时间】:2014-08-02 09:57:12
【问题描述】:

所以我有大约 3 个下午的 actionscript 3 经验,所以仍然试图理解所有概念,但这是一个我不太明白的相对简单(我假设)的问题。

舞台上有一个名为“num”的影片剪辑,其中包含三个帧,每个帧上都绘制了数字 1、2 和 3。还有一个名为“nextbtn”的按钮,点击后会转到下一帧(在一般时间轴上)。关于 'num' 的函数是:

function num2 (): void {
   num.gotoAndStop(2);
}

function num3 (): void {
   num.gotoAndStop(3);
}

时间轴的第二帧是代码:

stage.addEventListener(Event.ENTER_FRAME, num2);

在第三帧

stage.addEventListener(Event.ENTER_FRAME, num3);

这是我没有得到的:

这两个事件监听器成功地改变了屏幕上的数字,但是如果我在第四帧使用相同的代码返回到数字 2,似乎什么都没有发生,即使帧在前进,数字也保持在 3。

我知道这是一种非常新奇的方式来表达可能是一个非常简单的概念,但在代码方面我还是个蹒跚学步的孩子,所以...

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: actionscript-3 flash events actionscript


    【解决方案1】:

    问题在于您不了解那些听众,并且您在时间轴上的移动以及num MovieClip 的帧移动都搞砸了。以下是正在发生的事情:

    你在第一帧。您按下某个按钮 (nextbtn),主时间线 转到第 2 帧。代码如下:

    stage.addEventListener(Event.ENTER_FRAME, num2);
    

    它的实际作用是在每个刻度(进入帧)上执行num2 函数:

    function num2 (): void {
        num.gotoAndStop(2);
    }
    

    因此,如果您的 .swf 以每秒 30 帧的速度运行,这意味着每秒执行 30 次 num.gotoAndStop(2)。这意味着更少 - 它已经在第 2 帧上并且它已经停止了。没有想法继续强迫它去那里停下来。

    然后你再按下一步。它转到第 3 帧。有同样的事情,但 num3。基本上这是相同的概念 - 将 num 剪辑强制为 gotoAndStop(3) 每秒 30 次。

    您只需拨打num.gotoAndStop一次。而不是为ENTER_FRAME添加监听器,只需调用num.gotoAndStop(2)(或分别调用3个),它就会发生。

    另一个好主意是移动主时间线或 num MovieClip。移动两者有点奇怪..它有效,但正如你所看到的,它会让你犯错误。希望有帮助:)

    【讨论】:

    • 你是英雄。我是个新手,我什至不知道您不需要更改帧的功能。非常感谢!
    • 如果你愿意,你可以接受答案,所以没有悬而未决的问题,因为人们花时间阅读它们,试图帮助你..
    【解决方案2】:

    听起来你不需要任何ENTER_FRAME 每当您想进入某个框架时,只需尝试以下代码:

    num.gotoAndStop(2);
    

    如果您想在单击按钮后获得此代码,请尝试以下操作:

    back_button.addEventListener(MouseEvent.CLICK, back_clk);
    function back_clk(e:MouseEvent):void
    {
        prevFrame();
        // for next frame try this ===> nextFrame();
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 2012-04-12
      • 2011-09-14
      • 1970-01-01
      相关资源
      最近更新 更多