topical media & game development

talk show tell print

animation-ch19-TimeBased.ax

animation-ch19-TimeBased.ax [swf] [flash] flex


  package
  {
   import flash.display.Sprite;
   import flash.display.StageAlign;
   import flash.display.StageScaleMode;
   import flash.events.Event;
   import flash.utils.getTimer;
   
   public class @ax-animation-ch19-TimeBased extends Sprite
   {
    private var ball:animation_ch19_Ball;
    private var vx:Number;
    private var vy:Number;
    private var bounce:Number = -0.7;
    private var time:Number;
    private var gravity:Number = 450;
    
    public function @ax-animation-ch19-TimeBased()
    {
     init();
    }
  

init(s)


    private function init():void
    {
     stage.scaleMode = StageScaleMode.NO_SCALE;
     stage.align=StageAlign.TOP_LEFT;
     
     stage.frameRate = 100;
     ball = new animation_ch19_Ball();
     ball.x = stage.stageWidth / 2;
     ball.y = stage.stageHeight / 2;
     vx = 300;
     vy = -300;
     addChild(ball);
     time = getTimer();
     addEventListener(Event.ENTER_FRAME, onEnterFrame);
    }
  

frame(s)


    
    private function onEnterFrame(event:Event):void
    {
     var elapsed:Number = getTimer() - time;
     time = getTimer();
     vy += gravity * elapsed / 1000;
     ball.x += vx * elapsed / 1000;
     ball.y += vy * elapsed / 1000;
     var left:Number = 0;
     var right:Number = stage.stageWidth;
     var top:Number = 0;
     var bottom:Number = stage.stageHeight;
     
  

process


     if(ball.x + ball.radius > right)
     {
      ball.x = right - ball.radius;
      vx *= bounce;
     }
     else if(ball.x - ball.radius < left)
     {
      ball.x = left + ball.radius;
      vx *= bounce;
     }
     if(ball.y + ball.radius > bottom)
     {
      ball.y = bottom - ball.radius;
      vy *= bounce;
     }
     else if(ball.y - ball.radius < top)
     {
      ball.y = top + ball.radius;
      vy *= bounce;
     }
    }
   }
  }
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.