●Matrixクラスのメソッド(抜粋)
| メソッド | 説明 |
|---|---|
| translateメソッド | 位置情報の更新 |
| rotateメソッド | 角度情報の更新 |
| scaleメソッド | 拡大/縮小情報の更新 |
| createBoxメソッド | 位置・角度・拡大/縮小情報をまとめて更新 |
| concatメソッド | マトリクス情報を連結 |
| cloneメソッド | マトリクス情報の複製を作成 |
//ボタンを押した際に,x座標を10,y座標を5増加させる function moveStar(e:MouseEvent){ //starの現在のマトリクス情報を取得 var mat:Matrix = star.transform.matrix; //取り出したマトリクスの位置情報を更新 mat.translate(10,5); //starに更新した情報を適用 star.transform.matrix = mat; } button.addEventListener(MouseEvent.CLICK, moveStar); ■回転のマトリクス 回転のマトリクスには基準点の注意が必要となる。concatを使って結合しるのがポイント//初期位置のマトリクス情報を保存 var baseMat:Matrix = star.transform.matrix; //回転の状態を管理するマトリクスを別に用意 var rotateMat:Matrix = new Matrix(); //角度の情報を更新 rotateMat.rotate(Math.PI/6); //30度回転 //初期位置のマトリクスと連結する rotateMat.concat(baseMat); //(1)concatメソッドで連結 //連結したマトリクスをstarに適用する star.transform.matrix = rotateMatrix;■scaleの例//初期位置のマトリクス情報を保存 var baseMat:Matrix = star.transform.matrix; //拡大率の状態を管理するマトリクスを別に用意 var scaleMat:Matrix = new Matrix(); //ボタンを押すたびに,「その場で」拡大 function scaleStar(e:MouseEvent){ //拡大率情報を更新 scaleMat.scale(1.5,1.5); //拡大率のマトリクスから,合成用のマトリクスを作成 var mat:Matrix = scaleMat.clone(); //初期位置のマトリクス情報と連結 mat.concat(baseMat); //starにマトリクス情報を反映 star.transform.matrix = mat; } button.addEventListener(MouseEvent.CLICK, scaleStar);■一気に設定も可能
マトリクス情報を一気に設定する
マトリクス情報をまとめて設定するには,「createBoxメソッド」を使用します。createBoxメソッドは,五つの引数を指定し,マトリクスの情報を更新するメソッドです。
|
元の大きさの1/2の大きさで,45度回転させ,座標(100,50)の位置に移動させたい」という場合には,次のようにコードを記述します。
var mat:Matrix = new Matrix(); mat.createBox(0.5, 0.5, 45*Math.PI/180, 100, 50); star.transform.matrix = mat;