分12前回の第35回「Matrix3Dクラスによる座標変換」では,先に加える変換となるprependがついたMatrix3Dクラスのメソッドを試した。インスタンスに加わる変換は,スクリプトに書かれたものだけではないというヒントを示して終わった。今回は,その変換の中身を明らかにし,後から加えるappendのついた変換のメソッドを試す。例によって,まずは簡単なサンプルで確かめよう。ステージ中央にMovieClipインスタンスmy_mcを置き,2次元平面で90度回してみる(※1)。これを初めの状態とする(図1)。MovieClipインスタンスを2次元平面で90度回すMovieClipインスタンスを置いたタイムラインには,以下のフレームアクションを記述する。第1に注目してほしいのは,インスタンスのDisplayObject.transformプロパティから参照したTransform.matrix3Dに,Matrix3D()コンストラクタで生成した新規のオブジェクトを代入していることだ。これにより,インスタンスのもつ変換行列つまりMatrix3Dオブジェクトは,デフォルトに設定される。第2に,インスタンスがもともともっていたMatrix3Dオブジェクトは,予め変数(myMatrix3D)にとっておいた。インスタンスをクリックするとリスナー関数(setMatrix3D())によって,もとのMatrix3Dオブジェクトが改めて設定し直されるという流れだ。もとのMatrix3Dオブジェクトを設定}[ムービープレビュー]を確かめると,まずインスタンスはタイムラインの基準点つまりメインタイムラインなら左上隅に,回転していない(角度0)実寸(100%)で表示される(図2左図)。つぎにインスタンスをクリックすると,前掲スクリプトのリスナー関数により,オーサリング時に設定したとおり,ステージ中央で90度横に回る(図2右図)。Player内部でも,インスタンスはこのような手順で配置されている。タイムラインに置くべきデフォルト状態のインスタンスを取出し,その変換情報が納められたMatrix3Dオブジェクトを調べる。そのMatrix3Dオブジェクトをインスタンスに適用して表示する。変換を前に加えるprependと後に加えるappendは,もとのMatrix3Dオブジェクトよりメソッドを適用するのが前か後かという意味なのだ。※12次元平面の回転は,3次元空間でいえばz軸で回すことを意味する。,[変形]パネルの[3D回転]セクションにおける[Z]の角度には反映されない(前掲図1参照)。これは前回説明した,3次元空間の操作を加えるまではDisplayObjectインスタンスにMatrix3Dオブジェクトが生成されないのと同じ理由による。