Flash Lite 2.x のメモリの最適化

Posted by muchag | Flash Lite 2.0 | 2010-06-21 (月) 14:58:05

今までPC版だけできたので
メモリ管理については、難しく考えてこなかった。

でも、今回携帯Flashコンテンツを作成するにあたり
この問題は避けて通れないようだ。

Adobe のデベロッパーセンターに、よくまとまった記事があったので
参考にしてまとめておこうっと。

1.データのロード・アンロード
ロード・アンロードは連続させない

画像、オブジェクトおよび外部データのロード・アンロードは連続させずに時間を置くと成功率がアップする。

失敗の可能性がある
  1. ファイル1をロード
  2. ファイル1を削除
  3. ファイル2をロード
  4. ファイル2を削除
  5. ファイル3をロード

 

成功する可能性が高い
  1. ファイル1をロード
  2. ファイル1を削除
  3. 60秒待つ(setInterval を使用)
  4. ファイル2をロード
  5. ファイル2を削除
  6. ファイル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のメモリ管理と最適化

Flash Lite 2.0 | 2010-06-21 (月) 14:58:05 |

HTML から Flash Lite 2.0 への変数の受け渡し

Posted by muchag | Flash Lite 2.0,HTML | 2010-06-08 (火) 15:59:30

どうやら変数の受け渡し方もヴァージョンによって違うらしい。
めんど~!!!

今回は実際に成功した Flash Lite 2.0 のお話。

swfファイルへのパスを書く際に

  1. example.swf?id=1&name=hoge

のように記述してやるだけで
swfファイル内で普通に変数として利用可能。

ActionScript

  1. _root.vars_txt.text = name;

あ、そうそう。
ささっと試しただけだけど
HTML->Flash Lite 2.0 では
FlashVars属性での変数の受け渡しはできなかった。

ちなみにAS3では
受け取り方がめんどいらしい・・・。
せっかく調べたのでリンクのみ残しておこう。
Flashで遊ぼう! 13.HTMLから値を渡す

Flash Lite 2.0,HTML | 2010-06-08 (火) 15:59:30 |