bitmapの削除

ActionScript3.0 | メモリの解放 (WakaZ 〜 interactive 3DCG and FLASH)
http://wakaz.info/2008/12/actionscript30_1.html
Flashのメモリを制する5つの秘訣.. | エントリー | _level0.KAYAC
http://level0.kayac.com/2008/11/memory_leak.php
 
とりあえずテストで書いたのをそのまま貼り付け。
うーん。これでもGCが走るまではメモリはすぐには解放されないらしい。
多いけど、あらかじめ固定分確保しとく方がいいのか?

これで生成&削除を繰り返していたら、
そのうち解放されることを確認した。これでなんとかメモリリークは防げるかな。

    // sprite_ary[n] にはspriteが入っている。
    // sprite_ary[n] の子は bitmap 一つだけ
    // bitmapがないこともあるのでその時は何もしない
    // 
    var p_sprite:Sprite = sprite_ary[cnt];
    //
    if (p_sprite.numChildren > 0) {
     trace("sprite child object num " + p_sprite.numChildren);
     
     var child_bitmap:Bitmap = p_sprite.getChildAt(0) as Bitmap;
     if (child_bitmap != null) {
      trace("test");
      // ここがミソ!
      child_bitmap.bitmapData.dispose();
      p_sprite.removeChild(child_bitmap);
      child_bitmap = null;
      
      //trace(p_sprite.getChildAt(0));
      //trace(p_sprite.contains(p_sprite.getChildAt(0)));
      //var bitmap_index:int = p_sprite.getChildIndex(child_bitmap);
      //trace("sprite contains is "      + p_sprite.contains(child_bitmap));
      //trace("sprite bitmap index "     + String(bitmap_index));
      //trace("sprite child 0 is "       + p_sprite.getChildAt(0));
     }
    }