·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[as3]as3中Timer的运行与暂停操作源代码示例

时间:2016-10-20 15:10酷播
as3 Timer的暂停,[as3]as3中Timer的运行与暂停操作

as3 Timer的暂停,[as3]as3中Timer的运行与暂停操作

  1. /* 
  2. ~~ 星辰脈動 - Starpulse ~~ 
  3. */ 
  4. package { 
  5.   import flash.events.Event; 
  6.   import flash.events.EventDispatcher; 
  7.   import flash.events.IEventDispatcher; 
  8.   import flash.events.TimerEvent; 
  9.   import flash.utils.Timer; 
  10.   import flash.utils.getTimer; 
  11.   /** 
  12.    * The <code>MyTimer</code> class.<br/> 
  13.    */ 
  14.   public class MyTimer implements IEventDispatcher { 
  15.     //========================================================================== 
  16.     //  Constructor 
  17.     //========================================================================== 
  18.     /** Constructor */ 
  19.     public function MyTimer(delay:Number, repeatCount:int = 0) { 
  20.       super(); 
  21.       $timer = new Timer(delay, repeatCount); 
  22.       $startTime = NaN
  23.       $past = NaN
  24.       $correct = false
  25.       $timer.addEventListener(TimerEvent.TIMER, timerHandler, false, int.MAX_VALUE); 
  26.     } 
  27.     //========================================================================== 
  28.     //  Properties 
  29.     //========================================================================== 
  30.     private var $correct:Boolean; 
  31.     private var $past:Number; 
  32.     private var $startTime:Number; 
  33.     private var $delay:Number; 
  34.     private var $timer:Timer; 
  35.     //========================================================================== 
  36.     //  Public methods 
  37.     //========================================================================== 
  38.     public function reset():void { 
  39.       $startTime = NaN
  40.       $past = NaN
  41.       $timer.reset(); 
  42.     } 
  43.     public function stop():void { 
  44.       if(!$timer.running) 
  45.         return; 
  46.       $past = getTimer() - $startTime; 
  47.       $timer.stop(); 
  48.     } 
  49.     public function start():void { 
  50.       if(isNaN($startTime)) { 
  51.         $startTime = getTimer(); 
  52.       } else { 
  53.         $delay = $timer.delay; 
  54.         $timer.delay = $timer.delay - ((getTimer() - $startTime) % $timer.delay); 
  55.         $correct = true
  56.       } 
  57.       $timer.start(); 
  58.     } 
  59.      
  60.     public function dispatchEvent(event:Event):Boolean { 
  61.       return $timer.dispatchEvent(event); 
  62.     } 
  63.     public function addEventListener(type:String, listener:Function, useCapture:Boolean = false
  64.                                      priority:int = 0useWeakReference:Boolean = false):void { 
  65.       $timer.addEventListener(type, listener, useCapture, priority, useWeakReference); 
  66.     } 
  67.     public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void { 
  68.       $timer.removeEventListener(type, listener, useCapture); 
  69.     } 
  70.     public function willTrigger(type:String):Boolean { 
  71.       return $timer.willTrigger(type); 
  72.     } 
  73.     public function hasEventListener(type:String):Boolean { 
  74.       return $timer.hasEventListener(type); 
  75.     } 
  76.     //========================================================================== 
  77.     //  Event Listeners 
  78.     //========================================================================== 
  79.     private function timerHandler(event:Event):void { 
  80.       if($correct) { 
  81.         $timer.delay = $delay; 
  82.         $correct = false
  83.       } 
  84.     } 
  85.   } // <- end class -> 
  86. //                                                                         

 as3 Timer的暂停,[as3]as3中Timer的运行与暂停操作

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器