dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>flex>文章内容
flex: 使用setInterval 制作定时器
来源: 作者:

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
 }


上一篇:Flex中的闪烁效果   下一篇:JSP连接SQL Server 2000系统配置
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Flex 打印DataGrid内容
·Flex中的闪烁效果
·FLEX优秀开源项目介绍
·AS3中的正则表达式
·flex确认提示(confirm window)
·Flex RemoteObject类参考
·flex:RemoteObject 和 DataGrid
·AS3的面向对象特点概述
·利用AS3的图形界面开发及资源管
·AS3.0 访问属性
·AS3.0强大的事件机制
·FLASH CS3/AS3.0教程汇总(2007-7
  相关文章
·Flex中的闪烁效果
·Flex 打印DataGrid内容
·FLEX优秀开源项目介绍
·AS3中的正则表达式
·flex确认提示(confirm window)
·Flex RemoteObject类参考
·flex:RemoteObject 和 DataGrid
·AS3的面向对象特点概述
·利用AS3的图形界面开发及资源管
·AS3.0 访问属性
·AS3.0强大的事件机制
·FLASH CS3/AS3.0教程汇总(2007-7
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763