0

p2 = setInterval(function () { clearInterval(p2); 这里有一些代码; }, waitTime)

我需要在一个单独的函数中打破这个区间。

这会播放一系列 SWF 电影 - 有一个清除功能需要停止此间隔。

如何从 AS2 中的单独函数中停止此间隔?

4

1 回答 1

1

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() 是全局的

于 2009-08-15T12:12:59.647 回答