基于 Timer 的 flex 计时器
2009-05-24 21:44
507 查看
这几天在用 flex 做网络棋牌游戏,很多地方都要用到计时器。虽然
flex 内置有个 Timer, 但并不适合做游戏时钟,用起来怪怪的。自己实现了个易用接口,可用作时钟,倒计时等。以一个10秒到计时为例,只需创建该计时器类实例,并设置 timer
事件响应函数如下:
var timer:MyTimer = new MyTimer(0, 10);
timer.settimer.setTimerHandler(updateTimer);
函数 updateTimer 中可获取倒计时秒数如下:
function updateTimer(e:TimerEvent):void
{
var leftTime:int =
timer.leftSeconds;
}
MyTimer 类完整代码如下:
import flash.events.TimerEvent;
import flash.utils.Timer;
public class MyTimer
{
private static const DELAY:uint = 1000;
private static const SECONDS_PER_MINUTE:uint = 60;
private var timer:Timer = new Timer(DELAY);
public function MyTimer(minutes:uint = 0, seconds:uint = 0)
{
setTimer(minutes, seconds);
}
public function setTimer(minutes:uint, seconds:uint = 0):void
{
timer.repeatCount = seconds + minutes *
SECONDS_PER_MINUTE;
}
public function start():void
{
timer.start();
}
public function stop():void
{
timer.stop();
}
public function reset():void
{
timer.reset();
}
public function setTimerHandler(func:Function):void
{
timer.addEventListener(TimerEvent.TIMER, func);
}
public function setTimeoutsHandler(func:Function):void
{
timer.addEventListener(TimerEvent.TIMER_COMPLETE, func);
}
public function get currentMinutes():uint
{
return calculateMinutes(timer.currentCount);
}
public function get currentSeconds():uint
{
return calculateSeconds(timer.currentCount);
}
public function get leftMinutes():uint
{
return calculateMinutes(leftCount);
}
public function get leftSeconds():uint
{
return calculateSeconds(leftCount);
}
private function get leftCount():uint
{
return timer.repeatCount - timer.currentCount;
}
private function calculateMinutes(count:int):uint
{
return count / SECONDS_PER_MINUTE;
}
private function calculateSeconds(count:int):uint
{
return count % SECONDS_PER_MINUTE;
}
}
相关文章推荐
- System.timers.timer组件基于服务器的计时器
- Flex中Timer用法一例:计时器
- Flex 计时器 Timer
- [Flex] flex计时器的使用(timer)
- Flex:基于Flex-config.xml的命令行编译
- Flex与.NET互操作(一):基于Socket的网络连接
- Flex与.NET互操作(二):基于WebService的数据访问(上)
- 基于C++11 chrono库的计时器
- Flex timer使用 keydown事件注册到stage
- Flex与.NET互操作(三):基于WebService的数据访问(下)
- Java与Flex学习笔记(8)----Flex带进度条的多文件上传(基于Servlet)
- Flex与.NET互操作:基于WebService的数据访问
- 基于Thunk技术的Windows Timer的封装
- Android 计时器Timer用法
- sharepoint admin svc must be running in order to create deployment timer job 若要创建计时器作业,必须运行SVC
- Flex与.NET互操作(二):基于WebService的数据访问(上)
- ArcGis开发(一)—基于FlexAPI-hello map
- Android中三种计时器Timer、CountDownTimer、handler.postDelayed的使用
- 基于Flex的HTTPService(GET和POST)