您的位置: 首页 > 技术文档 > 多媒体制作 > 深入了解setInterval方法
回到列表 浅谈flash web的结构
用户名:
密 码: 忘记密码
注册会员 游览论坛 论坛帮助
 深入了解setInterval方法

作者:flashlizi 时间: 2007-04-27 文档类型:原创 来自:蓝色理想
浏览统计 total:743 | year:743 | Quarter:743 | Month:743 | Week:183 | today:183

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

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

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

var rootID=setInterval(_root,"test",500,"rootID");
function test(arg){
   trace(arg);
}

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

2、每一次调用setInterval,就会返回一个间隔lID,这个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。因此给间隔lID添加标识符就显得非常重要。但是必须把他分配到一个对象的成员变量中。
比如下面的代码:

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不了的情况了。如有错误,敬请指正。

经典论坛讨论:
http://bbs.blueidea.com/thread-2740196-1-1.html

本文链接:http://www.blueidea.com/tech/multimedia/2007/4680.asp 

出处:蓝色理想
责任编辑:elesa

◎进入论坛Flash专栏版块参加讨论

相关文章 更多相关链接
浅谈flash web的结构
A*寻路,二叉堆优化及AS3实现
雅致Flash打包工具1.0
用Flash制作的站长工具箱
Apollo是危险的吗?
作者文章
AS类:颜色属性ColorProperty
热门搜索:CSS Fireworks 设计比赛 网页制作 Dreamweaver Studio8 Flash
站点最新 站点最新列表
《Flash与后台总动员》即将面世
跨浏览器的CSS固定定位
Fireworks Eyecandy滤镜效果
Tab式位置导航变体
方正推出徐静蕾字体
深入了解setInterval方法
一个人的鼓浪屿:花时间
百度空间首页设计大赛
淘宝首页变胖了?
Membership角色与权限管理
栏目最新 栏目最新列表
跨浏览器的CSS固定定位
Fireworks Eyecandy滤镜效果
深入了解setInterval方法
Membership角色与权限管理
5种Web图像格式简述
客户端模版的应用
用Photoshop制作仿真的印章
浅谈flash web的结构
z-index在IE中的迷惑
A*寻路,二叉堆优化及AS3实现

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

本文暂时没有评论和评分

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
Don't Make Me Think 第2版
HTM与CSS入门经典(第7版)
《FLASH MX2004网站开发精粹》
《CSS入门经典》
《网页配色密码》
《设计师谈网页设计思维》
《Photoshop实用技能案例详解》