WebデザインノートBOOK

Webクリエイターに関する勉強を書き記したブログになります。

ActionScript2.0|授業課題



本日の課題。

ちょっとむずかしく書くと以下のようになります。
自作関数「function 〜()」で同じ計算,同じ動作を一つにまとめています。
こんなものもあるんだな程度で見てみてください。

今回のように単純な計算の場合はここまでしつこく書く必要はありませんが、プログラムが長く大きくなった場合このような書き方が基本になります。
「同じ計算,同じ動作は一つにまとめて使い回せ」ということ。


課題【A02】
var car_a:Number = 100;
var car_b:Number = 140;
var dist:Number = 560;
var output;

// 時間差の計算関数(計算関数(車Aの時速、距離)− 計算関数(車Bの時速、距離))
output = ( calc(dist, car_b) - calc(dist, car_a));

// 結果が負数になった場合、正数に戻す
// 上の計算でMath.absを使っても同じ結果。
if(output < 0){
	output = output * -1;
}

// 出力
trace(output);

// 計算関数(距離、車の時速)
function calc(input_dist, input_car){
	return(input_dist / input_car);
}
課題【A03】
var beer:Number = 500;
var uron:Number = 300;
var salada:Number = 600;
var chicken:Number = 800;
var pizza:Number = 800;
var persons:Number = 5;

// 出力(割り勘計算関数(単品小計関数結果+単品小計関数結果+・・・、人数))
trace(dutchCalc((calc(beer, 12) + calc(uron,4) + calc(salada, 2) + calc(chicken, 2) + calc(pizza, 2)), persons));

// 単品小計関数(単品値段、個数)
function calc(input_product, input_num){
	return(input_product * input_num);
}

// 割り勘計算関数(単品小計、人数)
function dutchCalc(input_sum, input_persons){
	return(input_sum / input_persons);
}

課題A03の、ビールやウーロン茶などを頼んだ個数が直書きになってますが、ユーザー側に入力させる形などにするとまた面白いですね。また、品目の値段を配列でひとまとめにするなど、もっと簡略化もできます。


おまけ「ひたすら加速するムービークリップ」(横Var.)
onClipEvent(load){
	speed = 0;
	accel = 1;
}

onClipEvent(enterFrame){
	speed += accel;
	this._x += speed;
	
	if(Stage.width < this._x){
		this._x = 0;
	}
}

※冒頭のFlashムービーはこのスクリプトを発展させて作ってみました(10分)