May 21

做项目要做倒计时,就写了一个倒计时类,分享....

ActionScript3.0


TimeBack.as 代码如下:

package
{
  import flash.events.Event;
  import flash.events.EventDispatcher;
  import flash.events.TimerEvent;
  import flash.utils.Timer;
  /**
   * ...倒计时工具
   * @author Emment
   */
  public class TimeBack extends EventDispatcher
  {
    private var timer:Timer;
    
    public var ss:int;
    public var mm:int;
    
    public function TimeBack() 
    {
      timer = new Timer(1000);
      timer.addEventListener(TimerEvent.TIMER, timerHandler);
    }
    /**
     * 秒
     * @param  mm
     */
    public function startRedTime(m:int):void
    {
      mm = Math.floor(m / 60);
      ss = m % 60;
      timer.reset();
      timer.repeatCount = m;
      timer.start();
    }
    private function timerHandler(e:TimerEvent):void
    {
      if (ss == 0) {
        ss = 59; 
        if (mm == 0) {
          timer.stop();
          ss = 0;
        }else {
          mm --; 
        }
      }else {
        ss--;
      }
      var evt:Event = new Event("seconds");
      dispatchEvent(evt);
    }
  }

}


调用方 代码

package  
{
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.text.TextField;
  /**
   * ...
   * @author Emment
   */
  public class Test extends Sprite
  {
    private var timeBack:TimeBack;
    public function Test() 
    {
      timeBack = new TimeBack();
      timeBack.addEventListener("seconds",secondsHandler);
      timeBack.startRedTime(4*60);
    }
    private function secondsHandler(e:Event):void
    {
                        //这里是一个动态文字
      TextField(test_tt).text = formatTime(timeBack.mm) +":" + formatTime(timeBack.ss);
    }
    private function formatTime(tt:int):String
    {
      return String(tt).length == 1?"0" + String(tt):String(tt);
    }
  }

}

tags:倒计时  

to "做项目要做倒计时,就写了一个倒计时类,分享...."

Leave a Reply