Flash / Flex / ActionScript/Animation/Easing

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

Easing Amination

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.TimerEvent;
   import flash.utils.Timer;
   
   public class Main extends Sprite {
       private var _sprite:Sprite = new Sprite(  );
       private var _easingSpeed:Number = 0.1;
       private var _targetX:Number = 400;
       private var _targetY:Number = 200;
       private var _timer:Timer;
       
       public function Main(  ) {
           _sprite.graphics.beginFill(0x0000ff, 100);
           _sprite.graphics.drawCircle(0, 0, 25);
           _sprite.graphics.endFill(  );
           _sprite.x = 50;
           _sprite.y = 50;
           addChild(_sprite);
           addEventListener(Event.ENTER_FRAME, onEnterFrame);
       }
       
       public function onEnterFrame(event:Event):void {
           var vx:Number = (_targetX - _sprite.x) * _easingSpeed;
           var vy:Number = (_targetY - _sprite.y) * _easingSpeed;
           _sprite.x += vx;
           _sprite.y += vy;
       }
   }    

}

       </source>
   
  


Easing speed

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.TimerEvent;
   import flash.utils.Timer;
   
   public class Main extends Sprite {
       private var _sprite:Sprite = new Sprite(  );
       private var _easingSpeed:Number = 0.1;
       private var _targetX:Number = 400;
       private var _targetY:Number = 200;
       private var _timer:Timer;
       
       public function Main(  ) {
           _sprite.graphics.beginFill(0x0000ff, 100);
           _sprite.graphics.drawCircle(0, 0, 25);
           _sprite.graphics.endFill(  );
           _sprite.x = 50;
           _sprite.y = 50;
           addChild(_sprite);
           addEventListener(Event.ENTER_FRAME, onEnterFrame);
       }
       
       public function onEnterFrame(event:Event):void {
           var dx:Number = _targetX - _sprite.x;
           var dy:Number = _targetY - _sprite.y;
           var dist:Number = Math.sqrt(dx * dx + dy * dy);
           if(dist < 1)
           {
               _sprite.x = _targetX;
               _sprite.y = _targetY;
               _timer.stop(  );
           }
           else
           {
               var vx:Number = dx * _easingSpeed;
               var vy:Number = dy * _easingSpeed;
               _sprite.x += vx;
               _sprite.y += vy;
           }
       }
   }    

}

       </source>
   
  


Object easing toward the mouse

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.TimerEvent;
   import flash.utils.Timer;
   
   public class Main extends Sprite {
       private var _sprite:Sprite = new Sprite(  );
       private var _easingSpeed:Number = 0.1;
       private var _targetX:Number = 400;
       private var _targetY:Number = 200;
       private var _timer:Timer;
       
       public function Main(  ) {
           _sprite.graphics.beginFill(0x0000ff, 100);
           _sprite.graphics.drawCircle(0, 0, 25);
           _sprite.graphics.endFill(  );
           _sprite.x = 50;
           _sprite.y = 50;
           addChild(_sprite);
           addEventListener(Event.ENTER_FRAME, onEnterFrame);
       }
       
       public function onEnterFrame(event:Event):void {
       var vx:Number = (mouseX - _sprite.x) * _easingSpeed;
       var vy:Number = (mouseY - _sprite.y) * _easingSpeed;
       _sprite.x += vx;
       _sprite.y += vy;
       }
   }    

}

       </source>