setInterval很不错,可以完全代替on
比如要用updateAfterEvent,强制刷屏
还有要记得用clearInterval(id);来停止掉setInterval,如果要在停止的地方忘记地址了,那是很恐怖的^^"
但是要当程序一大,到处都是setInterval的时候(当然这样的程序也不好),你会为了找setInterval的id在哪里..而忙呼
注意过id的人都知道id是一个number,在你调用setInterval的时候会返回一个number,而这个number会逐加,很像addListener中的_listener数组的length
那么一个停掉所有setInterval的笨办法。
MAX = 1000; for(var i=0;i<MAX;i++){ clearInterval(i); }
定义一个足够大的数字,然后慢慢clear,这么做就可以停止掉所有的setInterval了,当然如果你使用了超过1000个不同的setInterval(- -||)那还会出掉问题
所以最好的办法。
var tmpID:Number = setInterval(function(){},10); while(--tmpID > 0) clearInterval(tmpID);
先用setInterval建立一个空函数,这样tmpID就会得到一个目前所拥有的setInterval的个数,然后用while循环一次性搞定就可以了^^"
简单吧,这样,你在哪里用过setInterval都不要紧,因为我想flash内置的setInterval函数,一定有一个类似addListener中的_listener的数组,然后返回数组的长度
那么强化一下clearAll()方法:
function clearAll(Void):Void { // others clear statement var tmpId:Number = setInterval(function () {}, 10); while (--tmpId>0) clearInterval(tmpId); } //////////////////////////////////////////////// // 测试程序 function A(){trace("A");} function B(){trace("B");} function C(){trace("C");} setInterval(A,50); setInterval(B,50); setInterval(C,50);setInterval(clearAll,1000); function clearAll(Void):Void { var tmpId:Number = setInterval(function () {}, 10); while (--tmpId>0) clearInterval(tmpId); }
网友评论文明上网理性发言 已有0人参与
发表评论: