setInterval(),setTimeout()详细介绍
来源:互联网 发布:定金违约金怎么算法 编辑:程序博客网 时间:2024/05/18 16:39
setInterval动作的作用是在播放动画时,每隔一定时间就调用函数,方法或对象。可以使用本动作更新来自数据库的变量或更新时间显示。
setInterval动作的语法格式如下:
setInterval(function,interval[,arg1,arg2,......argn])setInterval(object,methodName,interval[,arg1,arg2,.....argn])
第一种格式是标准动作面板中setInterval函数的默认语法,第二种格式是在专家模式动作中使用的方法。
其中的参数function是一个函数名或者一个对匿名函数的引用。object参数指定从Object对象派生的对象。methodName制定object参数中要调用的方法。interval制定对function或methodName调用两次之间的时间,单位是毫秒。后面的arg1等是可选的参数,用于制定传递给function或是methodName的参数。
setInterval它设置的时间间隔小于动画帧速(如每秒10帧,相当于100毫秒),则按照尽可能接近interval的时间间隔调用函数。而且必须使用updateAfterEvent动作来确保以足够的频率刷新屏幕。如果interval大于动画帧速,则只用在每次播放头进入某一帧是才调用,以减小每次刷新屏幕的影响。
下面的例子每隔1秒调用一次匿名函数。
setInterval(function(){trace("每隔1秒钟我就会显示一次")},1000);//这里的function(){}是没有函数名
的函数。成为匿名函数,后面的1000是时间间隔,单位是毫秒。
下面的例子为我们展示如何带参数运行。
function show1(){
trace("每隔1秒我就会显示一次");
}
function show2(str){
trace(str);
}
setInterval(show1,1000);
setInterval(show2,2000,"每隔2秒我就会显示一次");
上面已经将函数的setInterval方法介绍了,下面我们将介绍对象的setInterval方法。
首先,写一个setInterval在动作中调用对象的方法的例子,该例子不需要传递参数。
myobj=new Object();//创建一个新的对象
myobj.interval=function(){
trace("每隔1秒我就会显示一次");
}//创建对象的方法。
setInterval(myobj,"interval",1000);//设定时间间隔调用对象的方法。
接下来介绍如何传递参数。其实道理和函数的传递参数是一样的。
myobj=new Object();
myobj.interval-function(str){
trace(str);
}
setInterval(myobj,"interval",2000," 每隔2秒我就会显示一次");
注意。要调用为对象定义的方法时,必须在专家模式中使用第二种语法格式。
clearInterval()
clearInterval动作的作用是清除对setInterval函数的调用,它的语法格式如下
clearInterval(intervalid);intervalid是调用setInterval函数后返回的对象。
下面举一个简单的例子。
function show(){
trace("每隔一秒我就会显示一次");
}
var sh;
sh=setInterval(show,1000);
clearInterval(sh);
setTimeout()
setTimeout (表达式,延时时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s)
setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
1,基本用法:
执行一段代码:
var i=0;
setTimeout("i+=1;alert(i)",1000);
执行一个函数:
var i=0;
setTimeout(function(){i+=1;alert(i);},1000);
下面再来一个执行函数的:
var i=0;
function test(){
i+=1;
alert(i);
}
setTimeout("test()",1000);
也可以这样:
setTimeout(test,1000);
总结:
setTimeout的原型是这样的:iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])
setTimeout有两种形式
setTimeout(code,interval)
setTimeout(func,interval,args)
其中code是一个字符串
func是一个函数.,注意"函数"的意义,是一个表达式,而不是一个语句.
比如你想周期性执行一个函数
function a(){
//...
}
可写为setTimeout("a()",1000)或setTimeout(a,1000)
这里注意第二种形式中,是a,不要写成a(),切记!!!若第二种形式中,使用a()的话,就会立即执行,达不到延时的效果了。
展开来说,不管你这里写的是什么,如果是一个变量,一定是一个指向某函数的变量;如果是个函数,那它的返回值就要是个函数.
2.用setTimeout实现setInterval的功能
思路很简单,就是在一个函数中调用不停执行自己,有点像递归
var i=0;
function xi(){
i+=1;
if(i>10){alert(i);return;}
setTimeout("xi()",1000);
//用这个也可以
//setTimeout(xi,1000);
}
3.在类中使用setTimeout
function xi(){
this.name="xi";
this.sex="女";
this.num=0;
}
xi.prototype.count=function(){
this.num+=1;
alert(this.num);
if(this.num>10){return;}
var self=this;
setTimeout(function(){self.count();},1000);
}
var x=new xi();
x.count();
setTimeout是window的一个方法,全称是这样的:window.setTimeout()
那应该是这样被定义的:
window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
//.....代码
return timer//返回一个标记符
}
所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了。
clearTimeout()
clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout。
clearTimeout(id_of_settimeout)
其中id_of_settimeout由setTimeout()返回的ID值,该值标识要取消的延迟执行代码块.
setTimeout()与setInterval()的区别:
setTimeout()只执行code一次。要多次调用,请使用setInterval()或者让code自身再次调用setTimeout()。
- setInterval(),setTimeout()详细介绍
- setTimeout,setInterval
- setTimeout()&&setInterval()
- setTimeout(); setinterval()
- setInterval & setTimeout
- setinterval seTtimeout
- setTimeout&&setInterval
- setInterval & setTimeout
- setTimeout & setInterval
- setTimeout/setInterval
- setTimeout()&setInterval()
- setInterval,setTimeout
- setTimeout() setInterval()
- setInterval()和setTimeout()的用法和区别示例介绍
- Javascript对象中关于setTimeout和setInterval的this介绍
- setTimeout和setInterval区别 setTimeout模拟setInterval
- javascript setTimeout 和 setInterval
- javascript setTimeout 和 setInterval
- 第14周 项目二(1)
- Material Design学习1
- 物流成本愈来愈阻碍经济的发展
- 第十四周项目—阅读并运行程序,解释程序执行得到的结果(3)
- AndroidManifest.xml中常用属性及含义
- setInterval(),setTimeout()详细介绍
- 第16周阅读程序——1(2)
- Material Designer效果展示
- 十进制转二进制思想以及延伸
- 应用直接退出
- 神奇的e 死理性派的数学模型:拒绝掉前面37%=1/e的人(marriage problem)
- Material Design学习2
- iOS初探+load和+initialize
- Android关于Theme.AppCompat相关问题