动作脚本2中的setTimeout

问题描述 投票:0回答:1

我正在使用它

var timer2 = setTimeout(checkValue2, 2000);

作为第2帧中的帧动作,然后触发checkValue2,这是第1帧中所有_global的一个函数。变量也是如此。

clearTimeout(timer2);
gotoAndStop(3);     //goto lvl3 - throw
addStage3();

所以它然后转到第3帧,但是,问题是即使清除后,帧动画仍然每2秒循环一次,无论我是否使用setTimeout或setInterval。你可能知道我需要的任何其他方式,在第2帧2秒后,它会移动到第3帧,我不想让它去任何地方。

我在这里做错了什么:(

flash loops settimeout setinterval actionscript-2
1个回答
0
投票

您根本不需要使用clearTimeout(),因为setTimeout() executes a function only once。首先在第2帧调用setTimeout之后你确定你已经停止了动画吗?

编辑

你的电影可能会在以后循环,所以frame2会一遍又一遍地执行。要找到问题的原因,请执行以下操作:

  1. 将事件侦听器添加到主时间轴的第1帧: onEnterFrame = function () : Void { trace ("current: " + _currentFrame) }
  2. 运行程序并检查跟踪输出:循环发生在哪一点?
  3. 如果循环总是发生在同一帧:检查该帧的内容,看看你是否有任何gotoAndPlay()或play()。此外,请重新检查您的stop()调用是否嵌套在函数声明中或以某种方式无法访问(例如,在if / else语句中从不执行,或者在其他代码之后停止脚本或跳转到另一帧)。
  4. 如果循环发生不正常:查看是否有任何随机或定时执行的ActionScript。顺便说一句:您可以使用MovieExplorer窗口查找FLA中的所有AS。
© www.soinside.com 2019 - 2024. All rights reserved.