Flash 在actionscript 2中设置超时

Flash 在actionscript 2中设置超时,flash,loops,settimeout,setinterval,actionscript-2,Flash,Loops,Settimeout,Setinterval,Actionscript 2,我在用这个 var timer2 = setTimeout(checkValue2, 2000); 作为第2帧中的一个帧动作,然后触发checkValue2,这是第1帧中的一个函数,其中所有的_都是全局的。变量也是如此 clearTimeout(timer2); gotoAndStop(3); //goto lvl3 - throw addStage3(); 所以它会转到第3帧,但是,问题是即使在清除后,帧动画仍然每2秒循环一次,不管我使用的是setTimeout还是setInter

我在用这个

var timer2 = setTimeout(checkValue2, 2000);
作为第2帧中的一个帧动作,然后触发checkValue2,这是第1帧中的一个函数,其中所有的_都是全局的。变量也是如此

clearTimeout(timer2);
gotoAndStop(3);     //goto lvl3 - throw
addStage3();
所以它会转到第3帧,但是,问题是即使在清除后,帧动画仍然每2秒循环一次,不管我使用的是setTimeout还是setInterval。你可能知道我需要的是,在第二帧中2秒后,它会移动到第三帧,我不希望它移动到任何地方


我在这里做错了什么吗:

您根本不需要使用clearTimeout,因为。您确定在第一帧中调用setTimeout后已停止动画吗

编辑

您的电影可能会在稍后循环,因此frame2会反复执行。要查找问题的原因,请执行以下操作:

将事件侦听器添加到主时间线的第1帧:

onEnterFrame = function () : Void { 
        trace ("current: " + _currentFrame) 
    }
运行程序并检查跟踪输出:循环在哪一点发生

如果循环总是发生在同一个帧上:检查该帧的内容,看看是否有gotoAndPlay,或者在其中播放。此外,请重新检查停止调用是否嵌套在函数声明中,或者是否无法访问,例如,在从不执行的if/else语句中,或者在其他可能停止脚本或跳转到另一帧的代码之后

如果循环不稳定:查看是否有任何ActionScript随机执行或以定时间隔执行。顺便说一句:您可以使用MovieExplorer窗口查找FLA中的所有AS


你是说停下来?我不能这样做,因为还有一些动画需要在帧中运行。还是我理解错了?你理解对了。主时间轴上的停止只会停止主时间轴,而不会停止其他MovieClips中的任何动画。如果继续循环第1帧和第2帧,则会在每个循环上调用setTimeout frame操作-难怪这不起作用。weltraumpirat;谢谢你的回复:是的,我的每一帧都有一个停止,甚至gotoAndStop3也有一个停止。在第二帧和第三帧已经有一个停靠点了。嗯。。。您是否收到任何错误消息?您正在使用内容调试器插件吗?您还可以在checkValue2函数中添加一个跟踪,以查看是否执行了该操作。