Home > lesson1 > ムービークリップをボタンでコントロールする[1-7]

ムービークリップをボタンでコントロールする[1-7]

ボタンを押してムービークリップを再生、停止させる(イベントリスナー編)

[1-6]はタイムライン制御でムービークリップを再生させましたが、今回はタイムラインを使わずにイベントリスナーのみでムービークリップをコントロールします。

[1-5]で使用したアクションスクリプトを利用して、ボタン制御のプログラムを追加したいと思います。
新規シンボルでボタンをステージに配置し、インスタンス名を付けます。(今回はstart_btnにしました)
さらに今回はストップ用ボタンも同じような手順でステージに配置し、インスタンス名を付けます。(今回はstop_btnにしました)

[1-5]のアクションスクリプトにボタンを押した時のプログラムを足していきます。
まず、ボタンが押された時のイベントリスナーを登録し、さらにボタンが押されたら実行するイベントリスナーを登録するみたいな感じなりますが、ボタンが押された時のイベントリスナーが[1-5]で使用したイベントリスナーになります。
実はイベントリスナーで実行するプログラムの中に、さらに実行するイベントリスナーを登録することができるんです。

//スタートボタンを押した時のイベントリスナー
start_btn.addEventListener(MouseEvent.CLICK,ballStart);

function ballStart(event:MouseEvent):void{
	//ボタンが押された時のイベントリスナー
	ball_mc.addEventListener(Event.ENTER_FRAME,ball);
}

スタートボタンがCLICKされたら、イベントリスナーを登録し、そのプログラムが動き出す処理になります。

今回はさらにストップボタンを押した時のプログラムを追加します。
[1-4]で使用したremoveEventListenerを利用して、ストップボタンが押されたら登録されているイベントリスナーを解除みたいな感じになります。

//ストップボタンを押した時のイベントリスナー
stop_btn.addEventListener(MouseEvent.CLICK,ballstop);

function ballstop(event:Event):void {
	//ボタンが押された時のイベントリスナー解除
	ball_mc.removeEventListener(Event.ENTER_FRAME,ball);
}

これで、スタートボタンを押したらムービークリップが再生され、ストップボタンが押すとムービークリップが停止となります。
ここで現状ではまだ把握できてませんが、ストップボタンを押してイベントリスナーの登録を解除しているんですが、スタートボタンを再度押すと、続きから再生されます。
ここの解説はわかり次第と言うことで・・・

var speedx:Number = 5;  //スピード
var cicle:Number = 10;  //回転
var mcWidth:Number = ball_mc.width / 2;  //インスタンスの幅
var stageL:Number = 0 + mcWidth;  //幅の最小値
var stageR:Number = stage.stageWidth - mcWidth;  //幅の最大値

//スタートボタンを押した時のイベントリスナー
start_btn.addEventListener(MouseEvent.CLICK,ballStart);

function ballStart(event:MouseEvent):void{
	//ボタンが押された時のイベントリスナー
	ball_mc.addEventListener(Event.ENTER_FRAME,ball);
}

//ballのプログラム関数
function ball(event:Event):void {
	ball_mc.x += speedx;
	ball_mc.rotation += cicle;
	if (ball_mc.x < stageL || ball_mc.x > stageR) {
		speedx *= -1;
		cicle *= -1;
	}
}

//ストップボタンを押した時のイベントリスナー
stop_btn.addEventListener(MouseEvent.CLICK,ballstop);

function ballstop(event:Event):void {
	//ボタンが押された時のイベントリスナー解除
	ball_mc.removeEventListener(Event.ENTER_FRAME,ball);
}
ボタンを押したらムービークリップを再生、停止

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.addchild.net/as3-beginner/ls1/152.html/trackback
Listed below are links to weblogs that reference
ムービークリップをボタンでコントロールする[1-7] from ADD CHILD = AS3

Home > lesson1 > ムービークリップをボタンでコントロールする[1-7]

Feeds
Meta

Return to page top