深入了解Flash AS中的setInterval方法 |
|||||
本文标签:Flash 相信大家对Flash的setInterval方法肯定非常熟悉,但不少人对其缺乏深入的了解,致使当一个flash里有多个setInterval的时候就容易混淆,该清除的间隔ID没有清除,不该清除的时候却清除了。对于setInterval的语法我就不赘述,很多文章都有详细说明,下面来说一下setInterval的几个重点。 1、setInterval和clearInterval都是全局函数,也就是_global.setInterval()和_global.clearInterval()。
我们用clearInterval(rootID)和用clearInterval(1)的作用是一样的。 2、每一次调用setInterval,就会返回一个间隔ID,这个ID数值为全局setInterval的调用次数。
在这个例子里,我们可以用clearInterval(1)来清除间隔rootID。假如我们先点击btn1再点击btn2,那么就可以用clearInterval(2)来清除点击btn1所产生的间隔ID,而用clearInterval(3)来清除点击btn2所产生的间隔ID。相反,如果我们先是点击btn2再点击btn1,那么clearInterval(2)则是清除点击btn2所产生的间隔ID. 3、给间隔lID添加标识符 在实际编程中,用上面的clearInterval(数字)这样的方式固然可以清除间隔ID,但是一旦ID过多,我们就会无法识别该清除哪个ID。因此给间隔ID添加标识符就显得非常重要。但是必须把他分配到一个对象的成员变量中。 比如下面的代码:
这样的标识方法就是错误的,因为testID是一个局部变量,仅作用于new方法内。因而无法在其他地方用clearInterval(newID)来清除此间隔。而去掉前面的var就可以了(此时newID是_root的一个成员变量)。 4、增加一个清除loadMovieNum加载进来swf的间隔ID的例子:
在IntervalID1.swf里:
在此例中,如果我们先点击btn1再点击btn2,那么2个间隔ID都会删除,而如果先点击btn2,那么IntervalID1是没有清除的。明白上面三点后,这些应该就是显而易见的了。 总结:了解了上面几个重点后,我想使用setInterval方法就会非常清楚了,不会怕setInterval了而clearInterval不了的情况了。如有错误,敬请指正。原文链接 |