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
}
http://blog.csdn.net/applecjn/archive/2005/10/29/519173.aspx
分享到:
相关推荐
主要使用和淘宝、小米和京东类似的CSS3 translateX移动达到轮播图丝滑般翻页~
博文链接:https://weiweichen1985.iteye.com/blog/193628
正常情况下,在data里定义homeSetInterval 保存定时器的ID值 ,在销毁组件是使用clearInterval方法是可行的 但在使用了如下的keep缓存模式在使用销毁模式不行了 应该使用离开路由器前方法beforeRouteLeave 补充...
秒表:使用setInterval函数的秒表
关于JS定时器(setTimeout setInterval)定时不准问题1
Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。 ...
使用场景:我在函数A中调用定时器函数,定时器是单独写的一个函数 原因:页面加载时我调用了1次函数A,然后又单独调用了一次定时器函数,导致调用了2次setInterval(),导致有setInterval_id有2个值。 通过打印定时器...
什么时候 使用setInterval循环直到条件为真。 我们使用它来测试第三方库是否已将正确的全局变量加载到window 。 不是很好,我知道。 有更好的主意吗? 安装$ npm install do-when$ component install segmentio/when...
两种方案清除定时器,开发者经常使用方案1,建议使用方案2 方案1 首先我在data函数里面进行定义定时器名称: data() { return { timer: null // 定时器名称 } }, 然后这样使用定时器: this.timer = (() => { ...
setInterval:可定时循环回调 第一次这样使用: setTimeout(function(){ console.log(延时1秒回调) },1000) setInterval(function(){ console.log(每隔2秒回调一次) },2000) 但性能测试后发现存在定时器未跟随...
前端开发中,我们会会经常使用定时器setinterval setTimeout等,但当我们离开页面时,定时器会被阻塞,导致我们再回到页面的时候定时任务会混乱运行,为些我的解决方案写了个简单demo,希望对你有所帮助
js代码-settimeout 模拟实现 setinterval(带清除定时器的版本)
2. **设置定时器参数:** 使用`setInterval()`方法设置定时器的时间间隔,以毫秒为单位。 3. **连接定时器事件处理函数:** 使用`timeout`信号连接定时器事件的处理函数。 4. **启动定时器:** 使用`start()`方法...
小程序定时器管理库,更合理地使用 setTimeout 和 setInterval,在页面显示时重启定时器,页面隐藏时暂停定时器,页面卸载时清除定时器。 写这个库的缘由。 使用 可参考 example 目录下的示例项目或参照以下流程: ...
本文实例讲述了JS使用setInterval实现的简单计时器功能。分享给大家供大家参考,具体如下: 使用setInterval实现计时,并且满60秒向分钟进一,满60分钟向小时进一。 <!DOCTYPE html> <html> <head>...