2008年8月アーカイブ

papervision3D(PV3D)の1.5で、
scene.removeChild(plane)しただけでは、ガベージコレクションの対象とならず、
メモリが解放されない現象を確認。

Planeクラス+MoveMaterialで3Dオブジェクトを作成している場合、

plane.material.bitmap.dispose();

(planeはPlaneクラスのインスタンス。materialはplaneクラスが保持するプロパティ)

を記述する事によってメモリの解放を確認出来ました。

AS3でLoaderクラスを使って画像(gifやjpgなどのビットマップ)を読み込んだ場合、

loader.unload();

だけだとメモリが解放されない現象を確認した。

loaderで読み込んだのが画像だった場合、BitmapDataクラスの
disopse();
を実行する事により、メモリが解放されるのを確認しました。

具体的にはこんな感じ。
(変数loaderはLoaderクラスのインスタンス)

if (loader.content is Bitmap)
{
loader.content.bitmapData.dispose();
}

これでメモリが解放された。

メモリの確認は、下記サイトで使用容量が分かる関数を教わりました。

ASのガベージコレクトは参照カウント方式じゃなかった
http://www.imajuk.com/blog/archives/2008/04/as_2.html

どうもありがとうございます。

環境:
OSX 10.5
Flash CS3

このアーカイブについて

このページには、2008年8月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年7月です。

次のアーカイブは2008年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。