練習課題B

if分を使って条件分岐


【B01】


ムービークリップが表示された時から、10ずつX座標を移動し右端まで行ったら左端から現れて繰り返すスクリプトを記述しなさい。


ムービークリップの幅」を「100」に変更する。

onClipEvent (load) {
	var speed:Number = 10; //移動速度
	var leftEdge:Number = 0; //左端の座標
	var rightEdge:Number = 550; //右端の座標
}

onClipEvent (enterFrame) {
	this._x += speed;
	if ( this._x >= rightEdge) {
		this._x = leftEdge-this._width/2;
	}
}

【B02】


左端から右端に移動して、そこで反転するムービーを作りなさい。
以下の記述では、端で反転しません。
反転するような記述に書き直しなさい。

onClipEvent (load) {
	var speed:Number = 10; //移動速度
	var leftEdge:Number = 0; //左端の座標
	var rightEdge:Number = 550; //右端の座標
}

onClipEvent (enterFrame) {
	if (_x > rightEdge) {
		_x -= speed;
	} else {
		_x += speed;
	}
}




この記述ができたら、はみ出してしまう部分を内側で反転するように記述しなさい。

onClipEvent (load) {
	var speed:Number = 10; //移動速度
	var leftEdge:Number = 0; //左端の座標
	var rightEdge:Number = 550; //右端の座標
}

onClipEvent (enterFrame) {
	if (this._x > rightEdge || this._x < leftEdge) {
		speed *= -1;
	}
	this._x += speed;
}


この時点では、ムービークリップの半分がはみ出てから反転します。
その差分を考慮して記述します。

onClipEvent (load) {
	var speed:Number = 10; //移動速度
	var leftEdge:Number = 0; //左端の座標
	var rightEdge:Number = 550; //右端の座標
}

onClipEvent (enterFrame) {
	if (this._x > rightEdge - this._width/2 || this._x < leftEdge + this._width/2) {
		speed *= -1;
	}
	this._x += speed;
}


※スタート位置が端から離れていないと、動きません。