Flash / Flex / ActionScript/Animation/Timer

Материал из Web эксперт
Перейти к: навигация, поиск

Change text value in a TextField in a timer

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.text.TextField;
   import flash.utils.Timer;
   import flash.events.TimerEvent;
   
   public class Main extends Sprite {
       var timer:Timer = new Timer(1000);
       
       private var _text:TextField;
       private var _start:uint;
       
       public function Main(  ) {
           _start = 0;
           _text = new TextField(  );
           addChild(_text);
           timer.addEventListener(TimerEvent.TIMER, onTimer);
           timer.start(  );
       }
       
       private function onTimer(event:TimerEvent):void {
           _text.text = (timer.currentCount - _start) + " milliseconds";
       }
       
   }

}

       </source>
   
  


Creating a Timer

   <source lang="java">

package Main{

   import flash.display.Sprite;
   import flash.utils.*;
   import flash.events.*;
   public class Main extends Sprite {
       public static const TIMER_DELAY:Number = 1 * 1000;
       public var timer:Timer;
       public function Main() {
           timer = new Timer(TIMER_DELAY, 10);
       }
   }

}

       </source>
   
  


Creating Symbols Within Flash CS3

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.utils.Timer;
   import flash.events.TimerEvent;
   public class Main extends Sprite {
      var timer:Timer;
      public function Main () {
          super();
          timer = new Timer(1000);
          timer.addEventListener(TimerEvent.TIMER, bark);
          timer.start();
      }
      public function bark(event:TimerEvent = null):void {
          trace("Woof!");
      }
  }

}

       </source>
   
  


Defers the call to the deferredMethod( ) method for five seconds:

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.utils.*;
 import flash.events.*;
 
 public class Main extends Sprite{
   public function Main(){
       var timer:Timer = new Timer(5000, 1);
       timer.addEventListener(TimerEvent.TIMER, deferredMethod);
       timer.start(  );
   }
   function deferredMethod(event:TimerEvent):void {
         trace("on timer");
   }
 }

}

       </source>
   
  


draws a single line with a random stroke style every 250 milliseconds. It uses clear( ) to erase the previously drawn line.

   <source lang="java">

package {

 import flash.display.*;
 import flash.utils.*;
 import flash.events.*;
 public class Main extends Sprite {
   private var s:Shape;
   public function Main(  ) {
     s = new Shape(  );
     addChild(s);
     var t:Timer = new Timer(250);
     t.addEventListener(TimerEvent.TIMER, timerListener);
     t.start(  );
   }
   private function timerListener (e:TimerEvent):void {
     s.graphics.clear(  );
     s.graphics.lineStyle(random(1, 10), random(0, 0xFFFFFF));
     s.graphics.moveTo(random(0, 550), random(0, 400));
     s.graphics.lineTo(random(0, 550), random(0, 400));
   }
   public function random (minVal:int, maxVal:int):int {
     return minVal + Math.floor(Math.random(  ) * (maxVal + 1 - minVal));
   }
 }

}

       </source>
   
  


Post-Event Updates for Timer Events

   <source lang="java">

package {

 import flash.display.*;
 import flash.events.*;
 import flash.utils.*;
 public class Main extends Sprite {
   public function Main(  ) {
     stage.frameRate = 1;
     var timer:Timer = new Timer(100, 0);
     timer.start(  );
     timer.addEventListener(TimerEvent.TIMER, timerListener);
   }
   private function timerListener (e:TimerEvent):void {
     var rect:Sprite = new Sprite(  );
     rect.graphics.lineStyle(1);
     rect.graphics.beginFill(0x0000FF);
     rect.graphics.drawRect(0, 0, 150, 75);
     rect.x = Math.floor(Math.random(  )*stage.stageWidth);
     rect.y = Math.floor(Math.random(  )*stage.stageHeight);
     addChild(rect);
     e.updateAfterEvent(  )
   }
 }

}

       </source>
   
  


Repeating a Task over Time

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.events.TimerEvent;
   import flash.utils.Timer;
   
   public class Main extends Sprite {
       private var _PreviousTime:Number = 0;
       
       public function Main(  ) {
           var tTimer:Timer = new Timer(500, 10);
           tTimer.addEventListener(TimerEvent.TIMER, onTimer);
           tTimer.start(  );
       }
       
       private function onTimer(event:TimerEvent):void {
           trace(flash.utils.getTimer(  ) - _PreviousTime);
           _PreviousTime = flash.utils.getTimer(  ); 
       }
   }

}

       </source>
   
  


Two timers are set, one for a square sprite and one for a circle sprite

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.events.TimerEvent;
   import flash.utils.Timer;
   
   public class Main extends Sprite {
       private var _square:Sprite;
       private var _circle:Sprite;
       
       
       public function Main(  ) {
           _square = new Sprite(  );
           _square.graphics.beginFill(0xff0000);
           _square.graphics.drawRect(0, 0, 100, 100);
           _square.graphics.endFill(  );
           addChild(_square);
           _square.x = 100;
           _square.y = 50;
           
           _circle = new Sprite(  );
           _circle.graphics.beginFill(0x0000ff);
           _circle.graphics.drawCircle(50, 50, 50);
           _circle.graphics.endFill(  );
           addChild(_circle);
           _circle.x = 100;
           _circle.y = 200;
           
           var squareTimer:Timer = new Timer(50, 0);
           squareTimer.addEventListener(TimerEvent.TIMER, onSquareTimer);
           squareTimer.start(  );
           
           var circleTimer:Timer = new Timer(100, 0);
           circleTimer.addEventListener(TimerEvent.TIMER, onCircleTimer);
           circleTimer.start(  );
       }
       
       private function onSquareTimer(event:TimerEvent):void {
           _square.x++;
       }
       
       private function onCircleTimer(event:TimerEvent):void {
           _circle.x++;
       }
   }

}

       </source>