
速いFlash/ActionScriptチューニング入門(2)
Flashで吹雪のごとき描画を実現するチューニング3策
チームラボ株式会社河北 啓史
2010/4/19
【2】Flash Playerに情報を保持「ビットマップキャッシュ」
- - PR -
ベクタ形式を使いつつも、ビットマップの描画速度を実現する。そんな要求を満たしてくれる便利な機能がFlashには備わっています。それは「ビットマップキャッシュ」という機能です。ビットマップキャッシュは、ベクタを描画するためにFlash Playerが内部的に作ったピクセル情報を消さずに残し、以降はそれを用いることで描画を高速化するという機能です。
□ 「ビットマップキャッシュ」を使うには
Flash Pro CS4でこの機能を利用には、ステージに配置されたMovieClipを選択した後、プロパティパネルの[ビットマップとしてキャッシュ]にチェックを入れてください。
![]() |
CS3の場合は、[ランタイムビットマップキャッシュを使用する]です。
![]() |
また、この機能をASから動的に設定する場合は、MovieClip継承クラスのインスタンスに対し、以下を記述することで設定可能です。
cacheAsBitmap = true;
□ 「ビットマップキャッシュ」を使うと
では、実際にビットマップキャッシュの有無で描画速度どれほどの差が出るのかを体感してもらいましょう、試しに下の例を実行してみてください。かなりのスコアアップを体感できると思います。
| ビットマップキャッシュにより高速化された例 |
このように、ラスタ形式の素材を用意することなく描画を高速化できるため、非常に便利です。
□ 「ビットマップキャッシュ」の弱点
しかし、このように便利なビットマップキャッシュ機能にも、注意しなければならないことがあります。
ビットマップキャッシュを有効にしていたとしても、rotation、scaleX、widthといった、形状そのものが変化するような値を変更してしまうと、その都度キャッシュ処理が実行され直されてしまいます。以下に示すように、効果が得られなくなってしまうのです。
| rotationの変更により、毎フレームの形状が変化するために効果が出ていない例 |
また、ビットマップキャッシュは、キャッシュを保持する都合上メモリを食いやすいため、サイズの大きなMovieClipなどに適用する際には注意が必要です。
| POINT 「TextFieldには、ビットマップキャッシュが有効」 |
| ビットマップキャッシュは、このような性質からTextFieldとの相性が、非常に良いです。表示文字列やサイズが頻繁に変化しないTextFieldでは、基本的にビットマップキャッシュを有効にしておくことを強くお勧めします。 |
さて、ビットマップキャッシュを利用するだけでも、かなりの高速化が見込めましたが、弱点が出てきてしまいました。それでは実制作で使う機会が損なわれてしまいます。しかし、それでも高速化したいですよね。そこで、次ページではその弱点を克服する方法として「プリレンダリング」という方法を紹介したいと思います。
| 1-2-3-4 |
| INDEX | ||
| 速いFlash/ActionScriptチューニング入門(2) Flashで吹雪のごとき描画を実現するチューニング3策 |
||
| Page1 Flash高速化は、ASの知識有無にかかわらず |
||
| Page2 【1】ベクタとラスタを使い分ける |
||
| Page3 【2】Flash Playerに情報を保持「ビットマップキャッシュ」 POINT 「TextFieldには、ビットマップキャッシュが有効」! |
||
| Page4 【3】あらかじめ描画の準備「プリレンダリング」 POINT 「BitmapDataの配列をクラスメンバとして定義」 注意! 「FlashのBitmapDataの限界サイズ」 注意! 「やり過ぎると、スクリプトタイムアウト」 たかがイベント処理と侮るなかれ |
||
速いFlash/ActionScriptチューニング入門 バックナンバー 連載インデックスへ»
- 第1回 Flashを閃光のごとく高速化するための基礎知識
- 第2回 Flashで吹雪のごとき描画を実現するチューニング3策
- 第3回 Flashで怒涛のごときイベント処理を捌きまくる3技
| 「デザインハック」コーナーへ |
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|


