ムービー上のインスタンスの位置を指定するには,行列(マトリクス)を使う方法があります。マトリクスを管理する「Matrix(マトリクス)クラス」を使用すると,位置や角度,拡大率などの情報をスナップショット的に扱えます。さらに,個々のマトリクスを合成して移動・回転・拡大/縮小するなど,柔軟な処理が可能になります。
Flashムービーでは,同じシンボルのインスタンスでも,位置・角度・拡大率を変化させることによって,見た目の印象を変化させることができます(図1)。また,位置・角度・拡大率を連続して変化させると,簡単なアニメーションをしているような動きを作ることもできます。
図1●位置・角度・拡大率の変化 [画像のクリックでサンプルを表示] |
インスタンスの位置・角度・拡大率はそれぞれ,「xプロパティ」「yプロパティ」「rotationプロパティ」「scaleXプロパティ」「scaleYプロパティ」で管理されていることは前回に説明しましたね。Flashには実は,この位置・角度・拡大率の情報を,ひとまとめにして扱うことのできる仕組みが用意されています。それが,今回ご紹介するMatrixクラスを使った処理です。
マトリックスは位置,角度,拡大率のスナップショット情報
マトリクスとはいったい何なのでしょう? 初めてこの言葉や仕組みを耳にする方もいらっしゃるでしょう。まずは,実際にどんな風に扱われているのかを見てみましょう。
新規Flashドキュメントを作成し,任意の名前で保存します。さらに,ステージ上に適当な絵を一つ描き,[F8]キーを押して,シンボル化します。ここまではOKですか? 今,ステージ上には,一つのインスタンスが配置されている状態となっていますね。次に,このインスタンスにインスタンス名を付けます。今回は「targetMC」と名前を付けておきましょう。(図2)
図2●シンボル化し,インスタンス名を付ける |
さて,一つのインスタンスがステージ上に存在しているわけですが,実はこのインスタンスには,すでに「マトリクス」が設定されているのです。実際に確かめてみましょう。タイムラインの1フレーム目を選択し,次のようにコードを記述してください。
|
このコードは,「インスタンスtargetMCの持つ,変形情報(transform)のうち,マトリクスに関する情報(matrix)を表示しなさい」という意味です。[ムービープレビュー]で結果を確かめてみましょう。図3のように,六つのパラメータらしきものと,数値が列記されていることが確認できますね。
図3●マトリクス情報を表示したところ |
このように,
|
というステートメントで,そのインスタンスの「マトリクス」情報を取得できます。このとき,[出力]ウィンドウに表示された,六つのパラメータが「マトリクス」の情報になります。詳しい解説は後ほどしますのでしばしお待ちを。ここではもう少し,検証を続けてみましょう。
ムービープレビューを閉じたら,今度は,ステージ上のインスタンス「targetMC」に対して[自由変形ツール]などを使って,位置や角度を変えたり,拡大・縮小してみましょう(図4)。
図4●インスタンスの位置などを変更 |
変更がすんだら,再び[ムービープレビュー]を実行し,先ほど記述しておいたコードを実行します。すると,六つのパラメータの値は,先ほどと違う値になっていますね(図5)。
図5●マトリクスの情報が更新されている |
手作業で移動したり,回転したため,微妙な値の小数が表示されていますが,ともあれ,ステージ上のインスタンスの位置を移動したり変形すると,マトリクスの情報が更新されることが確認できました。
このようにマトリクスは,インスタンスの数ある情報の中から,位置,回転,拡大率の情報のみを,独立して扱えるような仕組みとなっています。ちょうど,インスタンスの位置や変形の状態の「スナップショット」のような仕組みと言えます。