4の米国発売も間近になりました。10に実装される新たなクラスについても、Adobeその他のblog等で情報が明らかになりつつあります。それらの公開情報をもとに、本稿ではVectorクラスとMatrix3DクラスおよびVector3Dクラスについて簡単にご紹介します。Vectorクラス[*1]Vectorクラスは、ベクトルを扱います。ベクトルとは、複数の値をひと組にして演算するための数学的な概念です。ActionScriptにおける性質は、配列(Arrayクラス)にとても似ています。複数のエレメントを操作できます。lengthプロパティやpush()、pop()、slice()、sort()などのメソッドを備えています。【配列と異なる点】すべてのエレメントをひとつのデータ型で指定し、他の型のデータをエレメントにすることはできません。エレメントのインデックスは連番でなければならず、lengthプロパティの値より大きいインデックスにはエレメントが加えられません。Vectorクラスのコンストラクタは、つぎのようなシンタックスです。長さの固定:Boolean=false)第1引数の長さには、エレメント数を指定します。第2引数は、長さを固定するかどうかをブール(論理)値で渡します。デフォルトはfalseで、長さは固定されません。Vectorクラスを使うと、エレメントにデータ型が指定されるため、エレメントへの値の設定だけでなく取出した値についても型のチェックが行われます。エレメントへのアクセスも、配列と比べて高速です。Vectorインスタンスの生成とエレメントの値の追加、変更、取出しは、つぎのように行います。Vectorクラスについては、つぎのようなサイトの情報が参考になります。Matrix3Dクラス[*2]Matrix3Dクラスは、3次元の変換行列です。3次元のDisplayObjectに、平行移動や回転、拡大・縮小などの変換を適用します。2次元の変換行列Matrixクラスを3次元に拡張したもので、Matrixクラスが3×3の行列であるのに対して、4×4の正方行列になります。2次元のDisplayObjectのDisplayObject.transformプロパティには、Transform.matrix3Dプロパティの初期値としてはnullが与えられます。DisplayObjectインスタンスに3次元の操作を加えると、そのインスタンスのDisplayObject.transformプロパティにTransform.matrix3Dプロパティが自動的に生成されます。Matrix3Dクラスには、たとえばつぎのようなメソッドが備わっています。コンストラクタメソッド。Matrix3Dインスタンスを生成します。Matrix3Dインスタンスに回転を加えます。Matrix3Dインスタンスに、x軸y軸z軸のそれぞれの方向への拡大・縮小を加えます。Matrix3Dインスタンスに、x軸y軸z軸のそれぞれの方向への平行移動を加えます。Vector3DクラスVector3Dクラスは、3次元空間におけるベクトルを扱います。xyz座標に加えて、Matrix3Dとの演算に対応するため、第4のプロパティとしてwをもちます。したがって、Vector3Dインスタンスを列ベクトルとして表すと、つぎのようになります。z軸は奥に向かって値が増えます[*3]。3次元の「右手座標系」と呼ばれます。右手座標系はzが手前に向かって増えると覚えている人もいますが、Flashの座標系はy軸が下向きであることに注意が必要です。