Flash / Flex / ActionScript/Animation/Animation
Содержание
Animating by Frames
<source lang="java">
package {
import flash.display.*; import flash.events.Event; public class Main extends Sprite { public function FrameAnimation() { addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function onEnterFrame(event:Event):void { trace("animating"); } }
}
</source>
Animating with Pure ActionScript
<source lang="java">
package {
import flash.display.*; import flash.events.TimerEvent; import flash.utils.Timer; public class Main extends Sprite { protected var myShape:DisplayObject; public function Main() { var fps:int = 60; var mspf:int = Math.round(1 / fps * 1000); var t:Timer = new Timer(mspf); t.addEventListener(TimerEvent.TIMER, onTimer); t.start(); var s:Sprite = new Sprite(); addChild(s); myShape = getChildAt(0); } protected function onTimer(event:TimerEvent):void { myShape.x += 0.5; event.updateAfterEvent(); } }
}
</source>
Animation and Speed
<source lang="java">
package {
import flash.display.*; import flash.events.Event; import flash.utils.getTimer; public class Main extends Sprite { protected const SPEED:Number = 50; //50 pixels per second protected var myShape:DisplayObject; protected var lastTime:int; public function Main () { addEventListener(Event.ENTER_FRAME, onEnterFrame); lastTime = getTimer(); var s:Sprite = new Sprite(); addChild(s); myShape = getChildAt(0); } protected function onEnterFrame(event:Event):void { var time:int = getTimer(); myShape.x += SPEED * (time - lastTime) / 1000; lastTime = time; } }
}
</source>
A timer function-based animation
<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 _vx:Number = 1; private var _vy:Number = 1; 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 = 100; addChild(_sprite); _timer = new Timer(30); _timer.addEventListener("timer", onTimer); _timer.start( ); } public function onTimer(event:TimerEvent):void { _sprite.x += _vx; _sprite.y += _vy; } }
}
</source>
Moving an Object
<source lang="java">
package {
import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private var _sprite:Sprite = new Sprite( ); private var _vx:Number = 3; public function Main( ) { _sprite.graphics.beginFill(0x0000ff, 100); _sprite.graphics.drawCircle(0, 0, 25); _sprite.graphics.endFill( ); _sprite.x = 50; _sprite.y = 10; addChild(_sprite); addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(event:Event):void { _sprite.x += _vx; } }
}
</source>
Programmatic Animation
<source lang="java">
package{
import flash.display.*; import flash.text.*; public class Main extends Sprite { public function Main( ) { var t:TextField = new TextField( ); t.text = "Hello"; t.autoSize = TextFieldAutoSize.LEFT; addChild(t); while (t.x <= 300) { t.x += 10; } } }
}
</source>