ビットマップキャッシュとは?
■ビットマップキャッシュとは?
通常、 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;