forked from: 円を動かす

by bm_mori forked from 円を動かす (diff: 31)
♥0 | Line 61 | Modified 2010-04-15 12:43:48 | MIT License
play

ActionScript3 source code

/**
 * Copyright bm_mori ( http://wonderfl.net/user/bm_mori )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/bIqf
 */

// forked from 9re's 円を動かす
package {
    import flash.display.*;
    import flash.events.Event;
 
    [SWF(frameRate="60", width="465", height="465")]
    public class MyFirstAnimation extends Sprite { 
        private var _circle:Circle;
 
        public function MyFirstAnimation() {
            // クラスCircleのインスタンスを作る
            _circle = new Circle(4);
            // 半透明(不透明度25%)
            _circle.alpha = 0.5;
            _circle.vx = 3;
            _circle.vy = 8;
            _circle.directX = true;
            _circle.directY = true;
            
            // 最初の位置をwonderflの画面の中央にセット
            _circle.x = 465 / 2;
            _circle.y = 465 / 2;
            
            // 表示リストに追加
            addChild(_circle);
 
            // 1フレーム毎に実行する処理にenterFrameHandlerを追加する
            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }
 
        // フレーム毎に行われる処理 [25行目で登録される]
        private function enterFrameHandler(e:Event):void {
            // 1フレーム分動かす
            _circle.move();
        }
    }
}
 
import flash.display.Sprite;

class Circle extends Sprite {
	public var directX:Boolean;
	public var directY:Boolean;
    public var vx:Number;
    public var vy:Number;
    public var radius:Number;
    // コンストラクタ
    public function Circle(_radius:Number, _fillColor:uint = 0x000000) {
        // 塗り_fillColor, 半径_radiusの円
        graphics.beginFill(_fillColor);
        graphics.drawCircle(0, 0, _radius);
        graphics.endFill();
        // 半径の大きさをパブリックな変数に保存しておく
        radius = _radius
    }
    // 1フレーム分の動き
    public function move():void {
    		if (directX) {
	        x += vx;
 	        if (x>465) {
 	        		directX = false;
 	        }
    		} else {
    			x -= vx;
    			if (x<0) {
    				directX = true;
    			}
    		}
    		if (directY) {
 	        y += vy;
 	        if (y>465) {
 	        		directY = false;
 	        }
    		} else {
    			y -= vy;
    			if (y<0) {
    				directY = true;
    			}
    		}
    }
}