王朝网络
分享
 
 
 

深入了解Flash AS中的setInterval方法

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

相信大家对Flash的setInterval方法肯定非常熟悉,但不少人对其缺乏深入的了解,致使当一个flash里有多个setInterval的时候就容易混淆,该清除的间隔ID没有清除,不该清除的时候却清除了。对于setInterval的语法我就不赘述,很多文章都有详细说明,下面来说一下setInterval的几个重点。

1、setInterval和clearInterval都是全局函数,也就是_global.setInterval()和_global.clearInterval()。

这一点大家应该都知道,但是可能并没有特别注意。不过这点对我们理解他们非常重要。setInterval的返回值是一个间隔ID(数字),所以这个间隔ID也是全局的。

比如下面的代码:

var rootID=setInterval(_root, "test", 500, "rootID");

function test(arg) {

trace(arg);

}

我们用clearInterval(rootID)和用clearInterval(1)的作用是一样的。

2、每一次调用setInterval,就会返回一个间隔ID,这个ID数值为全局setInterval的调用次数。

比如下面的代码:

var rootID=setInterval(_root, "test", 500, "rootID");

btn1.onPress=function(){

setInterval(_root, "test", 500, "btn1_ID");

}

btn2.onPress=function(){

setInterval(_root, "test", 500, "btn2_ID");

}

function test(arg) {

trace(arg);

}

在这个例子里,我们可以用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添加标识符就显得非常重要。但是必须把他分配到一个对象的成员变量中。

比如下面的代码:

newtest();

function newtest(){

var newID=setInterval(_root, "test", 500, "btn2_ID");

}

function test(arg) {

trace(arg);

}

这样的标识方法就是错误的,因为testID是一个局部变量,仅作用于new方法内。因而无法在其他地方用clearInterval(newID)来清除此间隔。而去掉前面的var就可以了(此时newID是_root的一个成员变量)。

4、增加一个清除loadMovieNum加载进来swf的间隔ID的例子:

在IntervalID2.swf文件里的有个间隔ID:

var IntervalID2=setInterval(_root, "test", 1000, "IntervalID2");

function test(arg) {

trace(arg);

}

在IntervalID1.swf里:

loadMovieNum("IntervalID2.swf",1)

btn1.onPress = function() {

clearInterval(_level1.IntervalID2)

IntervalID1=setInterval(_root, "test", 2000, "IntervalID1");

};

btn2.onPress = function() {

clearInterval(2)

//clearInterval(IntervalID1)

};

function test(arg) {

trace(arg);

}

在此例中,如果我们先点击btn1再点击btn2,那么2个间隔ID都会删除,而如果先点击btn2,那么IntervalID1是没有清除的。明白上面三点后,这些应该就是显而易见的了。

总结:了解了上面几个重点后,我想使用setInterval方法就会非常清楚了,不会怕setInterval了而clearInterval不了的情况了。如有错误,敬请指正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有