MCのmatrixを調べる
trace(targetMC.transform.matrix);
任意の変形情報を持つマトリクスを作成する際には,
|
とコードを記述します。六つのパラメータを指定する順番は,[出力]ウィンドウに表示されているのと同じ順番です。
//新規マトリクスを作成
var mat:Matrix = new Matrix( 0.3541107177734375, 0.3541107177734375, -0.3541107177734375, 0.3541107177734375, 100, 50);
//作成したマトリクスの情報を,targetMCに反映 targetMC.transform.matrix = mat
■変形とかしたMCの位置とかをマトリックス用にtraceしる
//正規表現で「a=」「b=」「c=」「d=」「tx=」「ty=」
//の個所を取得するパターンを作成
var myPattern:RegExp = /a=|b=|c=|d=|tx=|ty=/g;
//マトリクス情報を文字列として取得
var matString:String = targetMC.transform.matrix.toString();
//マトリクス情報から,パターンに当てはまる文字列を消去した値を表示
trace("new Matrix" + matString.replace(myPattern,""));
アニメーションを起こすときには,次のようにマトリクス情報を配列にして持ち,インデックス番号を使って,順番にインスタンスに適用すると,ループするアニメーションも簡単に管理できます(こちらからサンプルをダウンロードできます)。
基本的な仕組みは,以下のようになっています。
/*簡易サンプル:インスタンスtargetMCを移動させます*/
//アニメーションのインデックス番号
var motionIndex:int = 0;
//マトリクス情報のリストを作成します
var motionList:Array = [
new Matrix(1, 0, 0, 1, 40, 195),
new Matrix(1, 0, 0, 1, 80, 160),
new Matrix(1, 0, 0, 1, 125, 200),
new Matrix(1, 0, 0, 1, 170, 170),
new Matrix(1, 0, 0, 1, 230, 190),
new Matrix(1, 0, 0, 1, 270, 170)
];
//enterFrameイベントで連続してマトリクス情報を反映
targetMC.addEventListener(Event.ENTER_FRAME,moveTarget)
function moveTarget(e){
targetMC.transform.matrix = motionList[motionIndex++];
motionIndex %= motionList.length
}