[as3]as3中Timer的运行与暂停操作源代码示例
as3 Timer的暂停,[as3]as3中Timer的运行与暂停操作
as3 Timer的暂停,[as3]as3中Timer的运行与暂停操作
- /*
- ~~ 星辰脈動 - Starpulse ~~
- */
- package {
- import flash.events.Event;
- import flash.events.EventDispatcher;
- import flash.events.IEventDispatcher;
- import flash.events.TimerEvent;
- import flash.utils.Timer;
- import flash.utils.getTimer;
- /**
- * The <code>MyTimer</code> class.<br/>
- */
- public class MyTimer implements IEventDispatcher {
- //==========================================================================
- // Constructor
- //==========================================================================
- /** Constructor */
- public function MyTimer(delay:Number, repeatCount:int = 0) {
- super();
- $timer = new Timer(delay, repeatCount);
- $startTime = NaN;
- $past = NaN;
- $correct = false;
- $timer.addEventListener(TimerEvent.TIMER, timerHandler, false, int.MAX_VALUE);
- }
- //==========================================================================
- // Properties
- //==========================================================================
- private var $correct:Boolean;
- private var $past:Number;
- private var $startTime:Number;
- private var $delay:Number;
- private var $timer:Timer;
- //==========================================================================
- // Public methods
- //==========================================================================
- public function reset():void {
- $startTime = NaN;
- $past = NaN;
- $timer.reset();
- }
- public function stop():void {
- if(!$timer.running)
- return;
- $past = getTimer() - $startTime;
- $timer.stop();
- }
- public function start():void {
- if(isNaN($startTime)) {
- $startTime = getTimer();
- } else {
- $delay = $timer.delay;
- $timer.delay = $timer.delay - ((getTimer() - $startTime) % $timer.delay);
- $correct = true;
- }
- $timer.start();
- }
- public function dispatchEvent(event:Event):Boolean {
- return $timer.dispatchEvent(event);
- }
- public function addEventListener(type:String, listener:Function, useCapture:Boolean = false,
- priority:int = 0, useWeakReference:Boolean = false):void {
- $timer.addEventListener(type, listener, useCapture, priority, useWeakReference);
- }
- public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void {
- $timer.removeEventListener(type, listener, useCapture);
- }
- public function willTrigger(type:String):Boolean {
- return $timer.willTrigger(type);
- }
- public function hasEventListener(type:String):Boolean {
- return $timer.hasEventListener(type);
- }
- //==========================================================================
- // Event Listeners
- //==========================================================================
- private function timerHandler(event:Event):void {
- if($correct) {
- $timer.delay = $delay;
- $correct = false;
- }
- }
- } // <- end class ->
- }
- //
as3 Timer的暂停,[as3]as3中Timer的运行与暂停操作
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...