flash.util.Timer类

flash.util.Timer类允许通过添加时间事件或延时来调用方法。通过Timer构造器创建实例对象,传递一个毫秒数字作为构造参数作为间隔时间,下面的例子实例化一个Timer对象每个1秒钟发出事件信号:

var timer.Timer = new Timer(1000); 

一旦创建了Timer实例,下一步必须添加一个事件监听器来处理发出的事件,Timer对象发出一个falsh.event.TimerEvent事件,它是根据设置的间隔时间或延时时间定时发出。下面的代码定义了一个事件监听,调用onTimer()方法作为处理函数:

timer.addEventListener(TimerEvent.TIMER, onTimer);

function onTimer(event:TimerEvent):void{

trace("on timer");

}

Timer对象不会自动开始,必须调用start()方法启动:

 timer.start(); 

默认情况下只有调用stop()方法才会停下来,不过另一种方法是传递给构造器第二个参数作为运行次数,默认值为0即无限次,下面的例子设定定时器运行5次:

 var timer:Timer = new Timer(1000, 5); 

下面的代码设定定时器延时5秒执行deferredMethod()方法:

var timer:Timer = new Timer(5000, 1);

timer.addEventListener(TimerEvent.TIMER, deferredMethod);

timer.start();

Flex中Timer用法一例:计时器

代码

<?xml version="1.0" encoding="utf-8"?>    
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"    
        layout="vertical"    
        verticalAlign="middle"    
        backgroundColor="white"    
        creationComplete="init()" viewSourceURL="srcview/index.html">    
  
    <mx:Script>    
        <![CDATA[    
            import flash.utils.Timer;    
            import flash.events.TimerEvent;    
  
            private const MIN_MASK:String = "00";    
            private const SEC_MASK:String = "00";    
            private const MS_MASK:String = "000";    
            private const TIMER_INTERVAL:int = 10;    
  
            private var baseTimer:int;    
  
            private var t:Timer;    
  
            private function init():void {    
                t = new Timer(TIMER_INTERVAL);    
                t.addEventListener(TimerEvent.TIMER, updateTimer);    
            }    
  
            private function updateTimer(evt:TimerEvent):void {    
                var d:Date = new Date(getTimer() - baseTimer);    
                var min:String = (MIN_MASK + d.minutes).substr(-MIN_MASK.length);    
                var sec:String = (SEC_MASK + d.seconds).substr(-SEC_MASK.length);    
                var ms:String = (MS_MASK + d.milliseconds).substr(-MS_MASK.length);    
                counter.text = String(min + ":" + sec + "." + ms);    
            }    
  
            private function startTimer():void {    
                baseTimer = getTimer();    
                t.start();    
            }    
  
            private function stopTimer():void {    
                t.stop();    
            }    
        ]]>    
    </mx:Script>    
  
    <mx:ApplicationControlBar dock="true">    
        <mx:Button label="Start timer" click="startTimer()" />    
        <mx:Button label="Stop timer" click="stopTimer()" />    
    </mx:ApplicationControlBar>       
  
    <mx:Label id="counter" fontSize="96" />    
  
</mx:Application>   

效果图:

Flex中Timer用法一例:上传文件(用时)计时器

代码

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
        layout="vertical" 
        verticalAlign="middle" 
        backgroundColor="white" 
        creationComplete="init();"> 
  
    <mx:Script> 
        <![CDATA[ 
            import flash.net.FileReference; 
            import flash.net.URLRequestMethod; 
            import mx.controls.Alert; 
            import mx.utils.StringUtil; 
  
            private var fileRef:FileReference; 
            private var urlVars:URLVariables; 
            private var urlReq:URLRequest; 
            private var startTimer:Number; 
            private var timer:Timer; 
  
            private function init():void { 
                fileRef = new FileReference(); 
                fileRef.addEventListener(Event.SELECT, fileRef_select); 
                fileRef.addEventListener(Event.COMPLETE, fileRef_complete); 
                fileRef.addEventListener(IOErrorEvent.IO_ERROR, fileRef_ioError); 
  
                urlVars = new URLVariables(); 
                urlVars.userID = 94103; 
                urlVars.fpVersion = flash.system.Capabilities.version; 
  
                urlReq = new URLRequest(); 
                urlReq.method = URLRequestMethod.POST; 
                urlReq.data = urlVars; 
                urlReq.url = "http://localhost:8300/fileref/uploader.aspx"; 
  
                timer = new Timer(100); 
                timer.addEventListener(TimerEvent.TIMER, onTimer); 
            } 
  
            private function onTimer(evt:TimerEvent):void { 
                lbl.text = String(getTimer() - startTimer) + " ms"; 
            } 
  
            private function start():void { 
                fileRef.browse(); 
            } 
  
            private function fileRef_select(evt:Event):void { 
                fileRef.upload(urlReq); 
                startTimer = getTimer(); 
                timer.start(); 
            } 
  
            private function fileRef_complete(evt:Event):void { 
                Alert.show(evt.toString(), evt.type); 
                timer.stop(); 
            } 
  
            private function fileRef_ioError(evt:IOErrorEvent):void { 
                Alert.show(evt.text, evt.type); 
                timer.stop(); 
            } 
        ]]> 
    </mx:Script> 
  
    <mx:Button label="upload" click="start();" /> 
    <mx:Label id="lbl" /> 
  
</mx:Application>

效果图:
 

转载于:https://www.cnblogs.com/qiantuwuliang/archive/2010/04/09/1708026.html

Flex Timer 定时器相关推荐

  1. Timer定时器开发

    Timer定时器开发 定时器的作用是不占线程的等待一个确定时间,同样通过callback来通知定时器到期. 参考:https://github.com/sogou/workflow 定时器的创建 同样 ...

  2. java Timer定时器管理类

    1.java timer类,定时器类.启动执行定时任务方法是timer.schedule(new RemindTask(), seconds*1000);俩参数分别是TimerTask子类,具体执行定 ...

  3. timer.schedule —— timer定时器的用法

    Java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerT ...

  4. python timer使用-Python timer定时器两种常用方法解析

    这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一,使用线程中现成的: 这种一般 ...

  5. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )

    文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...

  6. java项目中多个定时器_在java项目中如何使用Timer定时器

    在java项目中如何使用Timer定时器 发布时间:2020-11-16 16:36:16 来源:亿速云 阅读:97 作者:Leah 在java项目中如何使用Timer定时器?很多新手对此不是很清楚, ...

  7. java timer线程结束_Java线程Timer定时器用法详细总结

    定时/计划功能主要使用的就是Timer对象,它在内部还是使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联. Timer类主要作用就是设置计划任务,但封装任务的类却是TimerTask类.T ...

  8. Timer定时器控件 1130

    Timer定时器控件 1130 引入 Timer 属性

  9. c# 使用timer定时器操作,上次定时到了以后,下次还未执行完怎么处理

    c# 使用timer定时器操作,下次定时到了以后,上次还未执行完怎么办 ------解决方案------------------------------------------------------ ...

最新文章

  1. vue cli 添加html,vue-cli创建的项目,配置多页面的实现方法
  2. Rhel7 Ldap为本地用户认证方式,设置域、服务器位置和下载key
  3. 转载---sharepoint相关资源
  4. c linux 获取cpuid_Linux下C编程 -- 得到系统的CPU信息(cpuid)
  5. LeetCode 2069. 模拟行走机器人 II(模拟)
  6. handler和thread之间如何传输数据_HTTP和TCP之间的关系
  7. Python open()函数文件打开、读、写基础操作
  8. What are CBR, VBV and CPB?
  9. 拼车小程序的市场应用与外包开发的建议
  10. 【操作指导 | 代码实现】挑战程序设计竞赛2:算法和数据结构
  11. 牛客网赛码网 输入输出格式 pythonC++
  12. Python处理PDF——PyMuPDF的安装与使用
  13. 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作
  14. 如何申请注册邮箱?需要跟人工在线客服申请邮箱么?
  15. mesh 协调器 路由器_请TI技术支持和大神指点下,关于zigbee组建mesh路由网络的问题,谢谢!...
  16. unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光
  17. MyBatis总结 Day01
  18. mysql 平方函数_mysql函数
  19. 详细使用git打tag,删除tag,切换到某个tag时期,删除/查看分支
  20. python爬虫实战——运用requests批量下载qq音乐

热门文章

  1. 关于前后端配合开发的一点想法
  2. 比特币要升级成为“比特币现金”
  3. [SDOI2009]Elaxia的路线
  4. Codeforces 448E Divisors
  5. 【转载】如果你身边有程序员的朋友,请善待他们
  6. 广搜破解密码(HDU1195)
  7. ORA-00913错误:PL/SQL: ORA-00913: too many values
  8. 浅谈loadrunner中pacing设置
  9. 国产麒麟Linux安装体验
  10. SQLite入门与分析(二)---设计与概念