所以我有大约3个下午的动作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。
我知道这是一种令人难以置信的新方法,可能是一个非常简单的概念,但在代码方面我很小心,所以...
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
问题在于你不了解那些听众,你在时间轴上移动以及移动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)
每秒三十次。
您只需拨打num.gotoAndStop
一次即可。不要为ENTER_FRAME
添加监听器,只需调用num.gotoAndStop(2)
(或分别为3),就会发生。
另一个好主意是移动主时间轴或num MovieClip。移动它们有点奇怪..它有效,但正如你所看到的,它会让你犯错误。希望有所帮助:)
答案 1 :(得分:0)
听起来像你不需要任何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();
}