Actionscript 3 - 在 MovieClip 中的帧之间跳转?
Posted
技术标签:
【中文标题】Actionscript 3 - 在 MovieClip 中的帧之间跳转?【英文标题】:Actionscript 3 - jumping between frames in a 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。
我知道这是一种非常新奇的方式来表达可能是一个非常简单的概念,但在代码方面我还是个蹒跚学步的孩子,所以...
任何帮助将不胜感激,谢谢!
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于Actionscript 3 - 在 MovieClip 中的帧之间跳转?的主要内容,如果未能解决你的问题,请参考以下文章
ActionScript 3 在ActionScript中打开相机
将 Actionscript 1 转换为 Actionscript 3
ActionScript 3 AS3 TextField和StyleSheet示例(在ActionScript中创建)
ActionScript 2.0 和 ActionScript 3.0 有啥区别