Sprite(1) ~前説~
2006/11/11 14:02 - AS3.0
まずは Sprite から始めなければなりますまい。
でも、本題に入る前にちょっと前フリ。
私の Flash 作品のほとんどは、ある特定のフォーマットに則ってコーディングされています。 そしてそのフォーマットには、ちょっとした「癖」が二つあります。
1) 構造
私の作品は、ほとんどの場合、以下の二層構造から成り立っています。
- メインタイムラインにステージとなるムービークリップを生成(ステージと呼称)
- そのステージに子ムービークリップを複数個作成(ポイントと呼称)

そしてポイントである子ムービークリップ群が、何らかの動きをすることで作品になっています。
たとえば、3次元表現作品では立体の頂点等の各ポイントが子ムービークリップ群であり、モーションタイポ作品では各文字が子ムービークリップ群です。
2) ポイントへのアクセス方法
ポイントである子ムービークリップ群に何らかの動作をさせる際には、すべての子ムービークリップへアクセスすることが必要です。
アクセスには以下の二つの方法があると思います。
- 子ムービークリップに名前をつけて、その名前を使ってアクセスする
<生成時>
for ( var i:Number=0; i<5; i++ ) {
createEmptyMovieClip( "p_"+i , i );
}
<アクセス時>
for ( var i:Number=0; i<5; i++ ) {
this["p_"+i].function();
}
- 子ムービークリップ(の参照)を配列に格納し、その配列を使ってアクセスする
<生成時>
var p_array:Array = new Array();
for ( var i:Number=0; i<5; i++ ) {
var _mc:MovieClip = createEmptyMovieClip( "p_"+i , i );
p_array.push( _mc );
}
<アクセス時>
for ( var i:Number=0; i<p_array.length; i++ ) {
p_array[i].function();
}
大昔は前者でコーディングしていた時期もありましたが、今では後者を使っています。 楽だし、余計な変数を記述する必要も無くなるので。
Sprite(2) へ続く