setInterval 函数是Action Script 的全局函数,在Action Script 3.0 中它 被封装在 flash.util 包中,详见http://livedocs.macromedia.com/labs/1/flex/langref/migration.html, 它需要flash player 6 或以上版本的支持。
setInterval 有两种用法:
1. setInterval(functionName:Function, interval:Number [, param1:Object, param2, ..., paramN]) : Number
这种使用方法是让flash player 每隔interval (ms)时间调用functionName()这个函数,不关心这个方法是哪个对象的,后面跟传入的参数;一般来说这些参数值用来为函数提供数据,而不是从函数里取出数据。
2. setInterval(obj:Object, methodName:Function, interval:Number [, param1:Object, param2, ..., paramN]) : Number
这种方法调用obj 对象中的成员方法methodName,在flex 应用中必须使用这样的方法来实现定时调用的效果。这样的方式就能够,在methodName中就能够访问当前flex application的 成员变量或函数了。举个例子:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application initialize="initFunc()" xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:Script>
<![CDATA[
var count:Number;
function initFunc()
{
count = 60;
setInterval(this, "countDown", 1000);
}
function countDown()
{
showLabel.text = count.toString() + "second to go";
count -= 1;
if(count == 0)
timeUp();
}
function timeUp()
{
alert("Time is up");
}
]]>
</mx:Script>
<mx:Label id="showLabel"/>
</mx:Application>
如果这里使用第一种方法的话 就会出现 countDown 函数不能访问到count 和 showLabel 这两个变量,功能就没法实现,虽然可以通过传参数的方法来传入count 和 label:
setInterval(countDown, 1000, count:Number, showLabel:mx.controls.Label);
但是这样话 count-=1 并不起作用,所以根本不会count down。这个搞了我好久,开始没有看到第二种用法,大家要留意。
好看一点的例子:
function init()
{
var spanSec:Number=60*60 //an hour to go
var nf:mx.formatter.NumberFormatter = new mx.formatters.NumberFormatter();
nf.precision = 0;
nf.rounding = "down";
}
function timeCountDown()
{
var hr:Number =parseInt(nf.format(spanSec/3600));
var min:Number = parseInt(nf.format((spanSec - hr*3600)/60));
var sec:Number = parseInt(nf.format(spanSec - 60*min - hr*3600));
spanSec = spanSec - 1;
countDownLabel.text="Time left: "+hr+":"+min+":"+sec;
if(spanSec == 0)
{
submit();
}
}
function submit()
{
//do whatever you want
}
分享到:
相关推荐
主要使用和淘宝、小米和京东类似的CSS3 translateX移动达到轮播图丝滑般翻页~
博文链接:https://weiweichen1985.iteye.com/blog/193628
Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。 ...
关于JS定时器(setTimeout setInterval)定时不准问题1
使用场景:我在函数A中调用定时器函数,定时器是单独写的一个函数 原因:页面加载时我调用了1次函数A,然后又单独调用了一次定时器函数,导致调用了2次setInterval(),导致有setInterval_id有2个值。 通过打印定时器...
前端开发中,我们会会经常使用定时器setinterval setTimeout等,但当我们离开页面时,定时器会被阻塞,导致我们再回到页面的时候定时任务会混乱运行,为些我的解决方案写了个简单demo,希望对你有所帮助
js代码-settimeout 模拟实现 setinterval(带清除定时器的版本)
主要介绍了vue setInterval 定时器失效的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
首先来看下定时器的用法 1. setInterval(code,millisec[,”lang”]) setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 参数 描述 code 必需,要调用的函数或要执行的代码串。 ...
它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等,本文文章通过代码示例给大家介绍javascript中SetInterval与setTimeout的定时器用法
2. **设置定时器参数:** 使用`setInterval()`方法设置定时器的时间间隔,以毫秒为单位。 3. **连接定时器事件处理函数:** 使用`timeout`信号连接定时器事件的处理函数。 4. **启动定时器:** 使用`start()`方法...
使用setInterval()模拟进度条 使用setInterval()模拟进度条
Javascript定时器(二)——setTimeout与setInterval 在 http://www.cnblogs.com/strick/p/3983904.html 有说明
两种方案清除定时器,开发者经常使用方案1,建议使用方案2 方案1 首先我在data函数里面进行定义定时器名称: data() { return { timer: null // 定时器名称 } }, 然后这样使用定时器: this.timer = (() => { ...
小程序中有两个定时器:setTimeout与setInterval setTimeout:可延时回调 setInterval:可定时循环回调 第一次这样使用: setTimeout(function(){ console.log(延时1秒回调) },1000) setInterval(function(){ ...