Jul 21
接下来的例子演示了Flex中利用flash.utils.Timer类创建一个简单的时钟,当然不像一个Flash做的很漂亮的VISTA时钟(含源代码)那样功能齐全而且漂亮,本例的时钟仅仅有分,秒,微秒。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?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.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>
代码:Peter deHaan 翻译/整理/编译:minidxer
