ActionScript 運動法則(2)

少し工夫する運動

跳ね返るボール

これは簡単なif文で実現できます。

var spdx=5;
var spdy=5;
ball_mc.addEventListener(Event.ENTER_FRAME,onMove);
function onMove(e){
	if (((ball_mc.x - ball_mc.width/2) <0) || ((ball_mc.x + ball_mc.width/2) > stage.stageWidth)){
		spdx *= -1;
	}
	if (((ball_mc.y - ball_mc.height/2)<0) || ((ball_mc.y + ball_mc.height/2) > stage.stageHeight)){
		spdy *= -1;
	}
	ball_mc.x += spdx;
	ball_mc.y += spdy;
}

サンプル

トグルスイッチ

on offを順番に繰り返すスイッチをトグルスイッチといいます。
一見簡単そうですがちょっと面倒な手続きが必要です。スイッチを切り替える事にイベントリスナを削除する必要があります。

addEventListener(Event.ENTER_FRAME,onMove);

function onMove(e){
	ball.x += 10;
}

ball.addEventListener(MouseEvent.CLICK,onStop);

function onStop(e){
	removeEventListener(Event.ENTER_FRAME,onMove);
	ball.removeEventListener(MouseEvent.CLICK,onStop);
	ball.addEventListener(MouseEvent.CLICK,onStart);
}

function onStart(e){
	addEventListener(Event.ENTER_FRAME,onMove);
	ball.removeEventListener(MouseEvent.CLICK,onStart);
	ball.addEventListener(MouseEvent.CLICK,onStop);
}

サンプル