Away3DのWhiteShadingBitmapMaterialでメモリリーク

Away3DのWhiteShadingBitmapMaterialを普通に使ってるとBitmapDataをガンガンキャッシュしてメモリリーク起こすのでclearCache()してね、とのこと。

Issue 95 – away3d – Feature to clear bitmap cache in WhiteShadingBitmapMaterial (or texture setter) – Realtime 3D engine for Flash – Google Project Hosting

取り急ぎ5秒おきにキャッシュクリアして回避。

package wimax.away3d.material 
{
    import away3d.materials.WhiteShadingBitmapMaterial;
    import flash.display.BitmapData;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    
    public class ImprovedWhiteShadingBitmapMaterial extends WhiteShadingBitmapMaterial 
    {
        public var clearCacheInterval:int = 5000;
        
        public function ImprovedWhiteShadingBitmapMaterial(bitmap:BitmapData, init:Object=null) 
        {
            super(bitmap, init);
            
            var t:Timer = new Timer(clearCacheInterval);
            t.addEventListener(TimerEvent.TIMER, function(e:TimerEvent):void
            {
                clearCache();
            });
            t.start();
        }
    }
}