var clearId:int = setTimeout(function():void{
//some code here
clearTimeout(clearId);
},2000);
这是有效的AS3吗?有人看到它的问题吗?
答案 0 :(得分:2)
虽然这个编译没有警告或错误,并且是有效的AS3,但是有不需要的代码。
setTimeout函数只运行一次函数。
另一方面,setInterval函数以指定的间隔运行函数,直到调用clearInterval。
clearTimeout用于停止已设置的超时事件。 由于超时仅发生一次,因此无需在超时功能中清除它。 如果您使用的是setInterval,那么当您不再需要调用该函数时,您需要clearInterval。
答案 1 :(得分:1)
有效吗?是的。
有用吗?是的。
它有意义吗?没有。
超时仅执行一次。只有在超时完成后才会调用闭包。现在,如果你使用间隔,那就有意义了。
该方法有效,因为编译器预先定义了所有这些局部变量,使它们可以自动访问。基本上,它做了这样的事情:
var clearId:int;
clearId = setInterval(function():void
{
clearInterval(clearId);
}, 2000);