動くボールのアニメーション
ブラウザで無料ではじめるActionScript 3.0 ―It's a wonderfl world― | |
面白法人カヤック フォークビッツ ワークスコーポレーション 2009-12-19 売り上げランキング : 161324 おすすめ平均 すぐ始められるがゼロからは辛い wonderfl環境 入門書ではないです。 Amazonで詳しく見る by G-Tools |
wonderfl>020205をforkして、ボールの動きを変えてみる。
元のコードは、動くボール、重力の影響を受けるボール、マウスに追従するボールを表示するもの。クラスの継承の例題用のきれいなコードだな、と思う。
これに4行ほど加えて、ボールが画面から消えないようにした(基本的ですな)。マウスに追従するボールは、いらないので取り除く。重力の影響を受ける方のボールは、ある程度時間が経つと画面から消える。
以下、ソースです。if文の4行を加えてみました。
// forked from yd_niku's ExtentionExample package { import flash.display.Sprite; public class FlashTest extends Sprite { public function FlashTest() { var moveBall:Sprite= new MoveBallSprite (0x000066); moveBall.x = 100; moveBall.y = 50 addChild( moveBall ); var dropBall:Sprite= new DropBallSprite(0x006600); dropBall.x = 50; dropBall.y = 30 addChild( dropBall ); } } } import flash.display.*; import flash.events.*; class BallSprite extends Sprite { public function BallSprite( color:uint ){ super(); graphics.beginFill(color); graphics.drawCircle(0, 0, 10); graphics.endFill(); } } class MoveBallSprite extends BallSprite { public var velocityX:Number = 8; public var velocityY:Number = 6; public function MoveBallSprite( color:uint ) { super( color ); addEventListener( Event.ENTER_FRAME, updatePosition ); } private function updatePosition( e:Event ):void { x += velocityX; y += velocityY; if (x>=465) velocityX = -velocityX; if (y>=465) velocityY = -velocityY; if (x<=0 ) velocityX = -velocityX; if (y<=0 ) velocityY = -velocityY; } } class DropBallSprite extends MoveBallSprite{ public var gravity:Number = 0.6; public function DropBallSprite ( color:uint ) { super( color ); addEventListener( Event.ENTER_FRAME, updateVelocity ); } private function updateVelocity ( e:Event ):void { velocityY += gravity; } }