タグ : cacheAsBitmapMatrix

DisplayObject.cacheAsBitmapMatrix

以前のflashでは描画を高速化するためにDisplayObject.cacheAsBitmapというパラメータがありましたが、さらにモバイルデバイスにおいては描画が大切だということで、GPUを利用した際に回転やスケールを行った時もキャッシュされるDisplayObject.cacheAsBitmapMatrixというプロパティが追加されました。

このプロパティはpackager for iphone、air for androidの両方で使うことができます。

使い方の参考例 dio:DisplayObject

//↓の2行が必要。新しくmatrixをつくって割り当ててもOK!
dio.cacheAsBitmap = true;
dio.cacheAsBitmapMatrix = new Matrix();

//あとはいつもどおり回転や縮小すればOK
dio.scaleX = dio.scaleY = 0.5;
dio.rotation = 20;

比較動画を作ってみました。
サンプルは透過処理施したBitmapをMCで包み、7個重ねた状態でrotationとscaleを時間とともに変化させたものをNexusOneでプレビューしたものです。
左側:CPUで計算。cacheAsBitmapMatrixなし。
右側:GPUで計算。cacheAsBitmapMatrix有り。
やはりcacheAsBitmapMatrixを使うと圧倒的に速い!!!