加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex中的定时器Timer

发布时间:2020-12-15 05:12:15 所属栏目:百科 来源:网络整理
导读:flash.util.Timer类 ? ??? flash.util.Timer类允许通过添加时间事件或延时来调用方法。通过Timer构造器创建实例对象,传递一个毫秒数字作为构造参数作为间隔时间,下面的例子实例化一个Timer对象每个1秒钟发出事件信号:? ??? var ?timer.Timer? = ? new ?Ti

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()方法:?

???

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?
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>
复制代码

?

?

效果图:
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读