Flash / Flex / ActionScript/Animation/Oscillation
Версия от 09:19, 26 мая 2010; (обсуждение)
One possible use for this example is to simulate a fly, randomly buzzing around a room.
package {
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite {
private var _sprite:Sprite= new Sprite( );
public function Main( ) {
_sprite.graphics.beginFill(0xffffff, 100);
_sprite.graphics.drawCircle(0, 0, 25);
_sprite.graphics.beginFill(0x000000, 100);
_sprite.graphics.drawCircle(20, 0, 5);
_sprite.x = 100;
_sprite.y = 100;
addChild(_sprite);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
var dx:Number = mouseX - _sprite.x;
var dy:Number = mouseY - _sprite.y;
var radians:Number = Math.atan2(dy, dx);
_sprite.rotation = radians * 180 / Math.PI;
}
}
}
Oscillation Animation
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;
_sprite.y = 200 + Math.cos(_angle) * _radius;
_angle += .05;
}
}
}