ボタンで制御

ボタンからムービークリップを動かす

Illustratorでイラストを作成
  • グループ化しない
  • IllustratorからFlashへ、コピー&ペースト(ただし、同一バージョンに限ります)





このまま「修正」→「シンボルに変換」→「ムービークリップ」にします。


  • 使用するバージョンが違う場合は、Illustratorでの保存時点でバージョンをあわせます
  • そのファイルをFlashで、「ファイル」→「読み込み」→「ステージに読み込み」
ボタンインスタンスを準備する



(1)ボタンに動きのみを記述する
 ※間違った記述

 on (release) {
	this._rotation += 10;
 }


この記述では、ステージ全体が回転します。


(2)ムービークリップインスタンス名を記述する

 on (release) {
	bear_mc._rotation += 10;
 }

匿名関数(イベントハンドラメソッド)の場合

 var angle:Number = 10;

 rotation_btn.onRelease = function() {
	bear_mc._rotation += angle;
 }

ユーザー定義関数の場合

 var angle:Number = 10;

 rotation_btn.onRelease = bearAngle;
	function bearAngle():Void {
	bear_mc._rotation += angle;
 }

ボタンを押し続けると動く、離すと止まる


(1)ボタンに押したときのみの記述する
 ※間違った記述

 on (press) {
	var angle:Number = 10;
	bear_mc._rotation += angle;

 }

(2)読み込まれるたびに(onEnterFrame)

 on (press) {
	bear_mc.onEnterFrame = function() {
	bear_mc._rotation += 10;
	}
 }


動きますが、マウスを離しても止まりません。



(3)マウスを離したときの設定を追加します

 on (press) {
	var angle:Number = 10;
	
	bear_mc.onEnterFrame = function() {
	bear_mc._rotation += angle;
	}
 }

 on (release) {
	bear_mc.onEnterFrame = undefined;
 }
undefined:未定義
  • 値が設定されていないことを表す特殊なデータ型です。

匿名関数の場合

 var angle:Number = 10;

 rotation_btn.onPress = function() {
	bear_mc.onEnterFrame = function() {
		bear_mc._rotation += angle;
	}
 }

 rotation_btn.onRelease = function() {
	bear_mc.onEnterFrame = undefined;
 }

ユーザー定義関数の場合

 var angle:Number = 10;

 rotation_btn.onPress = bearAngle;
	function bearAngle():Void {
		bear_mc.onEnterFrame = function() {
			bear_mc._rotation += angle;
		}
 }
 rotation_btn.onRelease = bearStop;
	function bearStop():Void {
	bear_mc.onEnterFrame = undefined;
 }
ボタンが押されるたびに


オブジェクトアクション

  • 各ボタンに記述します。
 on (release) {
	var rate:Number = 10; 
	lemon_mc._y -= rate;
 }


イベントハンドラメソッド(匿名関数)

  • タイムラインに記述します。
 var rate:Number = 10; 

 top_btn.onRelease = function() {
	lemon_mc._y -= rate;
 }
 right_btn.onRelease = function() {
	lemon_mc._x += rate;
 }
 bottom_btn.onRelease = function() {
	lemon_mc._y += rate;
 }
 left_btn.onRelease = function() {
	lemon_mc._x -= rate;
 }


カスタム関数(ユーザー定義関数)

  • タイムラインに記述します。
 var rate:Number = 10; 

 top_btn.onRelease = upMove;
	function upMove():Void {
	lemon_mc._y -= rate;
 }
 right_btn.onRelease = rightMove;
	function rightMove():Void {
	lemon_mc._x += rate;
 }
 bottom_btn.onRelease = bottomMove;
	function bottomMove():Void {
	lemon_mc._y += rate;
 }
 left_btn.onRelease = leftMove;
	function leftMove():Void {
	lemon_mc._x -= rate;
 }
ボタンを押し続けると


オブジェクトアクション

  • 各ボタンに記述します。
 on (press) {
	peach_mc.onEnterFrame = function() {
		var rate = 10;
		peach_mc._y -= rate;
			if(peach_mc._y <= -10) {
				peach_mc._y =310;
			}
	}
 }
 on (release) {
	peach_mc.onEnterFrame = undefined;
 }


イベントハンドラメソッド(匿名関数)

  • タイムラインに記述します。
var rate:Number = 10;

top_btn.onPress = function() {
	peach_mc.onEnterFrame = function() {
		peach_mc._y -= rate;
			if(peach_mc._y <= -peach_mc._height/2) {
				peach_mc._y =300+peach_mc._height/2;
			}
	}
}
top_btn.onRelease = function() {
	peach_mc.onEnterFrame = undefined;
}

right_btn.onPress = function() {
	peach_mc.onEnterFrame = function() {
		peach_mc._x += rate;
			if(peach_mc._x >= 500+peach_mc._width/2) {
				peach_mc._x = -peach_mc._width/2;
			}
	}
}
right_btn.onRelease = function() {
	peach_mc.onEnterFrame = undefined;
}

bottom_btn.onPress = function() {
	peach_mc.onEnterFrame = function() {
		peach_mc._y += rate;
			if(peach_mc._y >= 300+peach_mc._height/2) {
				peach_mc._y = -peach_mc._height/2;
			}
	}
}
bottom_btn.onRelease = function() {
	peach_mc.onEnterFrame = undefined;
}

left_btn.onPress = function() {
	peach_mc.onEnterFrame = function() {
		peach_mc._x -= rate;
			if(peach_mc._x <= -peach_mc._width/2) {
				peach_mc._x = 500+peach_mc._width/2;
			}
	}
}
left_btn.onRelease = function() {
	peach_mc.onEnterFrame = undefined;
}