FLASHのお勉強 ーアクションスクリプトの実践的事始めー |
||||||||
| (49) ムービークリップの変形にMatrixを使ってみる 2007/10/2 | ||||||||
| 「flash.geom.Matrix クラス」と言うと、一般のFLASHユーザーにはなじみが薄い存在なのではなかろうか。 Matrixを日本語に直訳すると「行列」となり、どうも近づかない方が無難かなと言う気になってしまう。 このサイトの以前のお勉強「BitmapData クラスを使って画像をスライス」で写真の一部を切り抜くときにMatrixを使ったが、本来は、BitmapDataを変換したり設定すると同時にグラフィカルな形態を変換するのに威力を発揮するものだろうと思う。 今回のお勉強では、このMatrixの使い方の入門として、話を簡単にするため、ムービークリップに適用した例を示したいと思う。 | ||||||||
| Matrixの設定方法 | ||||||||
まず、Matrixオブジェクトのプロパティには・・・・、などと堅苦しい説明は抜きにして、Matrixで設定できるものには、平行移動、回転、拡大縮小、歪曲(傾斜)などがある。 これらを設定するのに3列、2行の行列を使うが、Matrix(a,b,c,d,tx,ty)と言う風に定義すればよい。 ここで、プロパティ a, b, c, d, tx, ty に数値を設定することで移動、回転などの変形が設定されることになる。 ムービークリップ(mc)にこの設定を反映させるには、以下のようにすればよい。 var myMatrix:Matrix = new Matrix(a,b,c,d,tx,ty);
ここで、ムービークリップとして、広島カープの球団マスコットの「スライリー(slyly)」君に登場願おう。 slyly君の写真をシンボルに変換し、リンケージを同名で設定する。 後述のスクリプトのように、slylyをステージにattachMovieすると、座標(0,0)に表示されるが、これを例えば(100,100)に移動させるには、 import flash.geom.Matrix; ここで、プロパティーの a, d は_xscale, _yscale に相当し、1が100%に相当する。 tx, ty はそれぞれ、x軸、y軸方向の平行移動pix値である。 b, c は歪曲(傾斜)をセットするのに使う。 なお、平行移動、拡大縮小、回転にはそれぞれ、translate、scale、rotateというメソッドが用意されていて、これを使って設定する方法もあり、特に回転はこれを使った方が分かりやすい。 ここでは、Matrix(a,b,c,d,tx,ty)で定義する方法で、例を以下に示す。
|
||||||||
| Matrixを使ってスライリーを酔わせる | ||||||||
それでは、スラーリー君をSWING運動で酔わせてみよう。 右にスクリプトを示した。 |
||||||||
|
||||||||
さらに、Matrixを設定したslylyを入れ子にしたムービークリップ slyly_mc に通常のアクションを付与してみた例を以下に示す。 |
||||||||
|
||||||||
| 最後に slyly を回転させてみよう。 回転は、a,b,c,d の4つのプロパティーが関係してくるが、これらを設定するよりも、メソッドの rotate を使う方がやりやすい。 ムービークリップslylyの基準点を真中にしておくと、中心を基準に回転する。 slyly の座標配置は、Matrixの設定が終わってから行う。 | ||||||||
|
||||||||
|
|
||||||||
| HOME お勉強総リスト |