新 3D クラス開発日記(7) ~ 頂点を使った 3D 表現<1> 後編 ~
2007/02/08 20:38 - AS3.0
前回の続きで、ソースの掲示と fla ファイルの説明です。
- ソース( vertex.zip 16.8 KB )
fla 外の定義ファイル
頂点の座標となる Vector オブジェクトを格納した配列を外部テキストファイルとして用意します。
これはタイムラインに書いても同じなんですが、差し替えを容易にするため別ファイルとしています。
サンプルでは、例によっていつもの如く、立方体と環の 2 種類を用意しました。
- coordinate_cube.txt : 立方体
- coordinate_ring.txt : 環
fla のライブラリ

頂点の表示オブジェクトとなる MovieClip をライブラリアイテムとして登録します。
これも座標定義ファイル同様、タイムラインでスクリプト生成してもいいんですが、頂点に複雑な表示オブジェクトを使いたい場合や、表示オブジェクトの差し替えなどをおこなうときの扱いを容易にしたいため、ライブラリアイテムにしています。
fla のタイムラインスクリプト
第1フレーム
頂点オブジェクト生成の前処理です。
座標定義ファイルの include をおこないます。
以下のコードでは立方体の表現をするようになっています。 コメントアウトを書き換えることで環の表現に切り替えることができます。
// [ ******************** include "coordinate_cube.txt"; // 立方体の座標 //include "coordinate_ring.txt"; // 環の座標 // ******************** ]
第2フレーム
頂点オブジェクト生成の本処理です。
実際に頂点オブジェクトを生成します。
頂点の表示オブジェクトは、この過程でライブラリから new LinkageName() により生成します。
while( i-- ) { face = new vertex_mc(); vertex_array[i] = new Vertex( vector_array[i] , face ); }
ライブラリの Linkage プロパティの Class 欄は "vertex_mc" と記載しています。
ライブラリへの表示オブジェクトの複数登録と、この new LinkageName() の記述変更との組み合わせで、表示オブジェクトの差し替えを容易にします(実例は後ほど示す予定です)。
第3フレーム
WorldVertex オブジェクトの生成とそのメソッドの実行によって、3D 表現をおこないます。
生成、頂点登録、onEnterFrame 開始の順で実行します。