flash on 2010-2-7

by sheep
他のクラスを使用
プロパティ entends クラスの継承
♥0 | Line 57 | Modified 2010-02-07 22:01:39 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;//他のクラスを使用
    import flash.events.Event;
    
    //プロパティ entends クラスの継承
    public class AnimationExample extends Sprite {
    		
    		//車のクラス
    		private var _car:Car;
    		
    		//コンストラクタ newされた時に自動的に最初から実行する関数
        public function AnimationExample() {
        	
            //車のクラスのインスタンスを作る
            //色は赤にする
            _car = new Car(0xd00000);
            _car.putGas(50);	//ガソリンを50入れる
            _car.y = 200;	//車のy座標を200
            //_car.x = 100;	//車のY作業を200にする
            addChild(_car);	//表示リストに追加する
            
            //1フレーム毎に実行する処理にmoveCarを追加する
            addEventListener(Event.ENTER_FRAME, moveCar);
            
        }
        
        private function moveCar(e:Event):void {
        		_car.move();	//車を動かす
        }
    }
}

import flash.display.Sprite;

class Car extends Sprite {
	//ガソリンの量最初は入っていない = 0
	private var _gas:int = 0;
	
	//コンストラクタ
	//製造時に車の色は決まる
	public function Car(_fillColor:uint) {
		//描画
		_draw(_fillColor);
	}
	
	//ガソリンを入れる
	public function putGas(_amount:int):void {
		if (_amount < 0) {	//もしガソリンの量が0以下だったら
			return;			//何もしないで、ここで終了
		}
		
		_gas += _amount;		//amountだけ_gasの量を増やす
	}
	
	//車を動かす
	public function move():void {
		if(_gas > 10){		//ガスの残業が10より大きい場合
			x += 5;			//x座標を5だけ増やす
		} else {				//ガスの量が10以下の場合
			x += _gas / 2;	//残りのガスの行によって動きが変わる
		}
		
		_gas--;				//車が動くとガスは減る
		if(_gas < 0){		//もしガスの量が0より小さいなら
			_gas = 0;		//ガスの量を0にセットする
		}					//ガスの量はマイナスにはならない
	}
	
	//描画メソッド。privateなので外からは見えない
	//車の形や色は製造される時に決まってしまうので外部からは呼べない
	private function _draw(_fillColor:uint):void{
		
		//車輪を書く
		graphics.beginFill(0x333333);
		graphics.drawCircle(10, 20, 5);
		graphics.drawCircle(45, 20, 5);
		graphics.endFill();
		//車体を書く
		graphics.beginFill(_fillColor);
		graphics.moveTo(0, 10);
		graphics.lineTo(15, 0);
		graphics.lineTo(30, 0);
		graphics.lineTo(40, 10);
		graphics.lineTo(50, 10);
		graphics.lineTo(55, 15);
		graphics.lineTo(55, 20);
		graphics.lineTo(0, 20);
		graphics.endFill();
		
	}
}