Flash / Flex / ActionScript/Animation/Springs — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 09:19, 26 мая 2010
Springs Animation
package {
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite {
private var _sprite:Sprite= new Sprite( );
private var _vx:Number = 20;
private var _vy:Number = 0;
private var _k:Number = .1;
private var _damp:Number = .94;
private var _targetX:Number = 200;
private var _targetY:Number = 200;
public function Main( ) {
_sprite.graphics.beginFill(0x0000ff, 100);
_sprite.graphics.drawCircle(0, 0, 5);
_sprite.x = 0;
_sprite.y = 0;
addChild(_sprite);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
var ax:Number = (_targetX - _sprite.x) * _k;
var ay:Number = (_targetY - _sprite.y) * _k;
_vx += ax;
_vy += ay;
_sprite.x += _vx;
_sprite.y += _vy;
_vx *= _damp;
_vy *= _damp;
}
}
}
Using Trigonometry
package {
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite {
private var _sprite:Sprite;
private var _angle:Number = 45;
private var _radius:Number = 200;
public function Main( ) {
_sprite = new Sprite( );
_sprite.graphics.beginFill(0x0000ff, 100);
_sprite.graphics.drawCircle(0, 0, 5);
_sprite.graphics.endFill( );
_sprite.x = 0;
_sprite.y = 100;
addChild(_sprite);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
_sprite.x = 200 + Math.sin(_angle) * _radius;
_angle += .05;
}
}
}