Flash Lite 2.x のメモリの最適化
今までPC版だけできたので
メモリ管理については、難しく考えてこなかった。
でも、今回携帯Flashコンテンツを作成するにあたり
この問題は避けて通れないようだ。
Adobe のデベロッパーセンターに、よくまとまった記事があったので
参考にしてまとめておこうっと。
1.データのロード・アンロード
ロード・アンロードは連続させない
画像、オブジェクトおよび外部データのロード・アンロードは連続させずに時間を置くと成功率がアップする。
失敗の可能性がある
- ファイル1をロード
- ファイル1を削除
- ファイル2をロード
- ファイル2を削除
- ファイル3をロード
成功する可能性が高い
- ファイル1をロード
- ファイル1を削除
- 60秒待つ(setInterval を使用)
- ファイル2をロード
- ファイル2を削除
- ファイル3をロード
ロードしたデータは確実にアンロード
addListener -> removeListener
LoadMovie -> UnloadMovie
これらはセットだと思うこと。
2.使用済み変数
必要のなくなった変数は削除するか null に設定する。
これによりその変数がガベージコレクション(メモリ解放の役割を担う)にマークされる。
つまり、変数は削除するか null に設定すると
ガベージコレクションが当該変数をメモリから削除してくれる。
3.グローバル変数
グローバル変数はできるだけ少なくする。
4.埋め込みフォント
埋め込みフォントは極力避ける。
5.XMLデータ
XMLデータを受信する場合は、細分化すること。
6.カスタムクラス
aaa.swf から bbb.swf をロードしたときに、bbb.swf にカスタムクラスが設定されている場合は
bbb.swf をアンロードした後、deleteステートメントを用いて、そのカスタムクラスを明示的に削除すること。
<参考元>
Adobe デベロッパーセンター:Flash Liteのメモリ管理と最適化