006[透明度(アルファ)]

2008/06/10

とりあえず今回までちょっと複雑にいきます。透明度です。

ASで透明度の操作をしてみます。
_alphaプロパティを使うことで以下のようなことが可能です

ソースは前回同様ちょっと複雑です。
でも、復習のつもりで見て下さい。

*レシピ*

onClipEvent (load) { //インスタンスがロードされた時
	a = 0; //変数aに0を代入
	flag = 0; //変数flagに0を代入
}
onClipEvent (enterFrame) { //インスタンスが再生されるたびに
	this._alpha = a; //このMCの透明度にa(つまり0)を代入(これでアルファ0(透明)になります)
	if (flag == 0) { //もしflagが0なら
		a++; //変数aに1ずつ足す
		if (a>100) { //もしaが100より大きくなったら
			flag = 1; 変数flagを1にする
		}
	} else {
		a--; //で、変数aから1ずつ引く
		if (a<0) { //もし変数aが0より小さくなったら
			flag = 0; //変数flagを0にする
		}
	}
}

前回の拡大縮小のときとソースはほぼ同じです。
というワケで前回の説明不足の部分を補足しておきます。

onClipEvent (load) { //インスタンスがロードされた時
	a = 0; //変数aに0を代入
	flag = 0; //変数flagに0を代入
}

この部分のonClipEvent(load)とは、この場合1回のみの処理になります。
タイムラインが見えないので分かりづらいですが・・・。
よって最初にこのアニメーション自体に
「aってのは0だよ」
「flagってのは0だよ」
と覚えさせるワケです。

次に

onClipEvent (enterFrame) { //インスタンスが再生されるたびに
	this._alpha = a; //このMCの透明度にa(つまり0)を代入(これでアルファ0(透明)になります)
	if (flag == 0) { //もしflagが0なら
		a++; //変数aに1ずつ足す
		if (a>100) { //もしaが100より大きくなったら
			flag = 1; 変数flagを1にする
		}
	} else {
		a--; //で、変数aから1ずつ引く
		if (a<0) { //もし変数aが0より小さくなったら
			flag = 0; //変数flagを0にする
		}
	}
}

この部分のonClipEvent(enterFrame)は、この場合ずっと繰り返し処理することになります。
※大まかにloadとenterFrameの違いは、この部分ですね。
なので、

	if (flag == 0) { //もしflagが0なら
		a++; //変数aに1ずつ足す
		if (a>100) { //もしaが100より大きくなったら
			flag = 1; 変数flagを1にする
		}
	} else {
		a--; //で、変数aから1ずつ引く
		if (a<0) { //もし変数aが0より小さくなったら
			flag = 0; //変数flagを0にする
		}
	}

この処理を延々と繰り返すワケです。

ちなみに「徐々に透明する」場合には

onClipEvent (enterFrame) {
	this._alpha -= 1;
}

でOKです。
ただし、これの場合は延々と「this._alpha -= 1;」の計算が行われていることを忘れないようにしてください。
要するに画面上でインスタンスが透明になって見えていないからと言って処理が終わったわけではないということです。

以上。
5回目(拡大縮小)と6回目(透明度) この2つをじっくりやってみると「あぁ!」って思うかもしれませんね。

ブログランキング・にほんブログ村へ

トラックバック(0)

このブログ記事を参照しているブログ一覧: 006[透明度(アルファ)]

このブログ記事に対するトラックバックURL: http://makuadmin.coresv.com/mt-tb.cgi/28