莆仙生活网
当前位置: 莆仙生活网 > 知识库 >

settimeout用法

时间:2025-02-17 01:22:02 编辑:莆仙君

AS3 setTimeOut,setInterval,Timer 的区别和用法

timer是定时器控件。
定时器控件响应时间的变化,它们独立于用户,编程后可以用来每隔一定的时间间隔执行一次操作。这个控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理,定时器控件也非常有用。
定时器控件有一个Interval属性,指定定时器事件之间的毫秒数。除非禁止这个属性,否则定时器会在大致相等的时间内不断处理事件中的操作。
在为计时器控件编程时应考虑对Interval属性的几条限制:
如果应用程序或其它应用程序正在进行对系统要求很高的操作——例如大循环、高强度计算或者正在访问驱动器、网络等——则应用程序定时器时间的间隔可能比Interval属性指定的间隔长。
间隔的取值可以在0-64767之间,最长的间隔也不比一分钟长多少。
间隔并不一定十分准确。要保证间隔准确,应只在需要时才让定时器检查系统时钟,而不在内部追踪累计的时间。
系统每秒生成十八个时钟信号——即使用毫秒衡量Interval属性,间隔实际的精确度不会超过十八分之一秒。
每个定时器控件必须与窗体关联,也就是说定时器控件必须在窗体上创建。如果不需要窗体完成其它操作的话,就不必使窗体可见。
定时器控件有两个关键属性:Enabled和Interval属性。定时器的Enabled属性设置为False时会暂停定时器操作。定时器事件是周期性的,Interval属性主要是决定【多少次】而不是【多久】。间隔的长度取决于所需的精确度。因为存在某些内部的错误可能性,所以应该把间隔设置为精确度的一半。
定时器时间越频繁,响应事件所使用的处理器事件就越多。这将降低系统性能。所以,除非在特别有必要的情况下,才应把时间间隔设置得比较小,否则不要设置过小的间隔。
希望我能帮助你解疑释惑。


setTimeout()和setInterval()方法的区别?

因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式。而setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式 。使用的时候各有各的优势,使用setInterval,需要手动的停止tick触发。而使用方法中嵌套setTimeout,可以根据方法内部本身的逻辑不再调用setTimeout就等于停止了触发。 其实两个东西完全可以相互模拟,具体使用那个,看当时的需要而定了。就像for可以模拟所有的循环包括分支,而还提供了do、while一样。

AS3 setTimeOut,setInterval,Timer 的区别和用法

个人理解:
从使用次数的分别来说:
setTimeout:一般只是一次使用。
setInterval:无限使用。
timer:可以限制次数。
但是如果有需要,三个类都可以达到彼此的功能,比如说,timer可以设置成一次使用,或者是无限次使用,但是从开发的简洁程度来说,不建议这样写。

从继承的角度来说:
setimeout和setinerval是不支持继承的,而timer具有良好的扩张性,像在很多游戏中的心跳机制都是用timer的功能来写的。所以在复杂功能的时候一般都是用timer。

应该还是有其它的区别,暂时没想到。
最重要的是,这三个方法,使用之后都要回收。不然会引发一些乱七八糟的bug,比如说内存溢出等等。