Flashゲーム講座 & アクションスクリプトサンプル集

 


ビットマップキャッシュとは?

 


■ビットマップキャッシュとは?


通常、 Flash 画面上に表示されているものは、毎サイクル「描画の計算」が行われます。
 
 
ビットマップキャッシュを使用すると、描画結果がメモリ上に退避されるようになります。
 
 
次のフレームで、グラフィックに変化が無く再描画の必要が無い場合
 
「描画の計算」は行われず、キャッシュに退避させたデータを使って描画が行われます。
 
よって、ベクターなどのグラフィックであれば、高速に動作するようになります。
 
 

■再描画が発生する条件

 
■再描画が発生する条件
 
1フレーム前の状態から、グラフィックが変わったり、回転したり、スケールが変化したり、色が変わったり、ブレンド、フィルタが変化した場合です。
 
■再描画が発生しない条件
 
1フレーム前の状態から、座標しか変化していないときです。
 

■ビットマップキャッシュの注意点


ビットマップキャッシュを有効にすると、必ず高速化するとは限りません。
 
逆に、無駄な処理が増える恐れがあります。
 
頻繁に再描画される状態にあるにもかかわらず、ビットマップキャッシュを有効にしてしまうと、「通常の描画計算」と「描画結果をメモリに退避する」という2つの処理が、常に行われる事になります。
 
ビットマップキャッシュを使っていない時より、処理が増えます。また、メモリも無駄に消費します
 
 
■ビットマップキャッシュを利用すべき場面
 
ベクターグラフィックで、絵が頻繁に変わらず座標しか変化しない場合のみ、
 
ビットマップキャッシュを有効にします。
 

■ビットマップキャッシュが使用できる条件


■Flash Player 9 以前の場合
 
幅と高さが 2880 ピクセルまでのグラフィックに適用できます。
 
グラフィックのサイズがこの範囲を超えてしまうと、ビットマップキャッシュが動作しません。
 
■Flash Player 10 の場合
 
幅と高さが 8192 ピクセルまでのグラフィックに適用できますが、総ピクセル数は 16777216 までとなります。(幅が 8192 なら高さは 2048 まで)
 
グラフィックのサイズがこの範囲を超えてしまうと、ビットマップキャッシュが動作しません。
 
■Flash Player 11 以降の場合
 
ピクセルサイズの制限はありません
 
メモリ不足の場合、ビットマップキャッシュが動作しません。
 


 

ムービークリップをキャッシュ化する

 

サンプルをダウンロード
 


■インスタンスをビットマップキャッシュ化する


ムービークリップをビットマップキャッシュ化するには、 cacheAsBitmap プロパティに true をセットします。
 
ブレンドやフィルタを使用している場合は、自動的に true になります。
 
ムービークリップ "mc" をビットマップキャッシュ化する

mc.cacheAsBitmap = true;
 

■抜き部分に色を付ける


ムービークリップの描画矩形の抜きに当たる透明な部分に、色をつけることができます。
 
アルファブレンディング処理が省かれ、ほんの少し高速に描画する事ができます。
 
 
ムービークリップの抜きに色を付けるには、opaqueBackground プロパティを使用します。
 
RGB カラーを指定します。
 
ムービークリップ mc の抜き部分に色(FF0000)を付ける

mc.opaqueBackground = 0xFF0000;