papervision3D(PV3D)の1.5で、
scene.removeChild(plane)しただけでは、ガベージコレクションの対象とならず、
メモリが解放されない現象を確認。
Planeクラス+MoveMaterialで3Dオブジェクトを作成している場合、
plane.material.bitmap.dispose();
(planeはPlaneクラスのインスタンス。materialはplaneクラスが保持するプロパティ)
を記述する事によってメモリの解放を確認出来ました。
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