p2 = setInterval(function () { clearInterval(p2); 这里有一些代码; }, waitTime)
我需要在一个单独的函数中打破这个区间。
这会播放一系列 SWF 电影 - 有一个清除功能需要停止此间隔。
如何从 AS2 中的单独函数中停止此间隔?
setInterval 的全部内容就是范围。
您的代码看起来的方式,p2 在主时间线中,它属于 this/_level0/_root 对吗?
clearInterval() 也是一个全局函数,因此您可以从嵌套在任何影片剪辑中的任何其他函数调用它,只要您可以访问间隔的 id(在您的情况下为 p2)
所以如果你有一些像:
p2 = setInterval(function () { trace('p2 running'); }, waitTime);
你可以有一个单独的功能,比如
function clearP2(){
clearInterval(p2);
}
如果该函数嵌套在某个剪辑中,您始终可以使用脏的所有 _root (如在绝对路径中)
例如 //clearP2 位于远离 _root 的嵌套剪辑中
function clearP2(){
clearInterval(_root.p2);
}
当然你也可以使用相对路径
function clearP2(){
clearInterval(_parent._parent._parent.p2);//depending on the clips hierarchy
}
要记住的想法是确保您可以在需要的地方访问间隔的 ID,clearInterval() 是全局的