首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

软件资讯设计 工具 系统 开发 安全 办公 陶吧 IT教育 Windows 7 | 下载中心天极下载中心诚征下载通路合作伙伴
天极网 > 软件频道 > 设计在线 > flash>深入了解Flash AS中的setInterval方法

深入了解Flash AS中的setInterval方法

2007-07-27 10:42作者:经典论坛(网页教学网)出处:论坛整理责任编辑:Shiny

  很抱歉有时我们无法找到论坛的文章的原始作者和出处, 欢迎作者以及原出处与我们联系,我们会及时署名。 ###adv###

  相信大家对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不了的情况了。如有错误,敬请指正。原文链接

  如对于本文有任何疑问、意见以及建议,请在文章底部的留言板上留言。

  更多精彩,尽在天极设计在线 design.yesky.com!


电脑美术设计热门专区


设计软件视频教程大全

设计软件经典教程

设计人生——数码设计人访谈实录集
·精彩设计作品展示
·精彩网页素材
·照片处理专区
·设计软件经典专题集粹

  阅读关于 Flash setInterval 方法 AS 代码 的全部文章
共1页。 1
进入 最权威的Windows 7论坛 查看网友讨论

软件频道最新更新

热点推荐

IT嘉年华

编辑推荐

软件下载

热门
推荐

网友关注

软件
资料
游戏

装机推荐

文章排行

本周
本月
最新更新
天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络