setTimeout,clearTimeout在关闭

时间:2011-11-08 02:23:53

标签: javascript actionscript-3 actionscript

var clearId:int = setTimeout(function():void{
            //some code here
            clearTimeout(clearId);
        },2000);

这是有效的AS3吗?有人看到它的问题吗?

2 个答案:

答案 0 :(得分:2)

虽然这个编译没有警告或错误,并且是有效的AS3,但是有不需要的代码。

setTimeout函数只运行一次函数。

另一方面,setInterval函数以指定的间隔运行函数,直到调用clearInterval。

clearTimeout用于停止已设置的超时事件。 由于超时仅发生一次,因此无需在超时功能中清除它。 如果您使用的是setInterval,那么当您不再需要调用该函数时,您需要clearInterval。

答案 1 :(得分:1)

有效吗?是的。
有用吗?是的。
它有意义吗?没有。

超时仅执行一次。只有在超时完成后才会调用闭包。现在,如果你使用间隔,那就有意义了。

该方法有效,因为编译器预先定义了所有这些局部变量,使它们可以自动访问。基本上,它做了这样的事情:

var clearId:int;
clearId = setInterval(function():void
{
    clearInterval(clearId);
}, 2000);