Matrixクラス(2)

| コメント(0) | トラックバック(0)

MatrixクラスのインスタンスをMovieClipに適用するには、「Matrixクラス(1)」で使用した
「BitmapDataインスタンス.draw(MovieClipインスタンス,Matrixインスタンス)」のほかに、インポートした「flash.geom.Transformクラス」からインスタンスを生成し、それが持つプロパティ「matrix」に代入する方法がある。

【サンプル】
ステージサイズ200x200、ライブラリにビットマップ「icon.jpg」(リンケージ識別子:icon.jpg)。


icon.jpg

FLASH PLAYER

Get Adobe Flash player

以下、コード。

//クラスインポート
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.Transform;
//BitmapDataインスタンス生成
var bmp:BitmapData=new BitmapData();
//BitmapDataインスタンスにロード
bmp=BitmapData.loadBitmap("icon.jpg");
//空のMovieClip生成
var view_mc:MovieClip=_root.createEmptyMovieClip("view_mc",this.getNextHighestDepth);
//MovieClipにアタッチ
view_mc.attachBitmap(bmp,this.getNextHighestDepth);
//Matrixインスタンス生成
var mtrx:Matrix=new Matrix();
//Transformインスタンス生成
var trans:Transform=new Transform(view_mc);
//Matrix設定
mtrx.rotate(Math.PI/180*45);
mtrx.translate((Stage.width-view_mc._width)/2,(Stage.height-view_mc._height)/2);
//Matrixインスタンス適用
trans.matrix=mtrx; 

これだけじゃ面白くないので、「onEnterFrame」でMatrixインスタンスのプロパティを変更してみた。

FLASH PLAYER

Get Adobe Flash player

以下、コード。

//クラスインポート
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.Transform;
//BitmapDataインスタンス生成
var bmp:BitmapData=new BitmapData();
//BitmapDataインスタンスにロード
bmp=BitmapData.loadBitmap("icon.jpg");
//空のMovieClip生成
var view_mc:MovieClip=_root.createEmptyMovieClip("view_mc",this.getNextHighestDepth);
//MovieClipにアタッチ
view_mc.attachBitmap(bmp,this.getNextHighestDepth);
//Matrixインスタンス生成
var mtrx:Matrix=new Matrix();
//Transformインスタンス生成
var trans:Transform=new Transform(view_mc);
var angle:Number=0;
//Matrix設定1(view_mcを中央に配置)
mtrx.translate((Stage.width-view_mc._width)/2,(Stage.height-view_mc._height)/2); 
onEnterFrame=function():Void{
 if(angle>=360){angle=0;}
 //Matrix設定2
 mtrx.b=Math.tan(Math.PI/180*angle*2);
 mtrx.c=Math.tan(Math.PI/180*angle*2);
 //Matrixインスタンス適用
 trans.matrix=mtrx;
 angle++;
}

トラックバック(0)

トラックバックURL: http://www.ayabin.jp/mt5/mt-tb.cgi/195

コメントする

このブログ記事について

このページは、webmasterが2009年8月20日 10:34に書いたブログ記事です。

ひとつ前のブログ記事は「Matrixクラス(1)」です。

次のブログ記事は「Matrixクラス(3)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。