MEMOUK

ActionScript 3 Tweenerとメモリ問題(ガベージコレクション)

もはや必須のライブラリーTweener。気をつけないとメモリ問題ではまります。

以下、kaniくんより

●まずはFlashのガベージコレクション(メモリーの掃除)の基本
つくったものをステージからremoveChildする
その際にaddEventListenerしていたらremoveEventListenerをする
これで参照が無くなるのでガベージコレクションの対象になる
特定のタイミングでガクッとメモリの使用量が減る

サンプルファイルをダウンロード(Adobe Flash CS4/ActionScript3)


Tweenerクラスとガベージコレクションの対象
addChildしたインスタンスがTweenerを使ってループアニメを使った場合、ガベージコレクションの対象にならない
なぜならTweenerクラスが静的クラスなのでFlashPlayerのグローバルな領域にいてインスタンとの参照が切れないためメモリリークが発生する

サンプルファイルをダウンロード(Adobe Flash CS4/ActionScript3)

しばらく実行しているとその内fpsが1に近づいてカクカクになっていきます。


●上記のインスタンスをガベージコレクションする方法
インスタンスのremoveChildのタイミングで、TweenerのremoveTweensを実行して現在実行中のアニメを取り除く
これにによって参照からはずすことができる

サンプルファイルをダウンロード(Adobe Flash CS4/ActionScript3)

出力ウィンドウを見てもらうとガクッとメモリの使用量が減ります。

はまりやすい罠ですな

Posted by uk at 00:25 | パーマリンク | コメント (0) | トラックバック (0)

【ロクナナワークショップ無料受講チケット付き】Adobe CS5 Master Collection 製品版が361,000円(税込)

bnr_adobecs5.gif dis_wimax_io-data.gif

このエントリーのトラックバックURL:
http://www.67.org/blog/mt-tb.cgi/1143

コメントを投稿

MEMOUKROKUNANA

SITE FEED

複数割 最大23%オフ

 

10000円キャッシュバック

Search