我正在使用带有 AIR 的 Flash CS6 开发手机游戏。也在同一平台上设计和编码(不使用八哥等)。
我正在将movieClips(静态,非动画)动态转换为位图,并且工作正常。但是我意识到通过这个过程 bitmapData 缓存在内存上并且形状很大,它需要大量内存。然后我决定通过 dispose() 添加到 bitmapData 的阶段清除。但它会从舞台和任何显示的地方移除。
我的代码;
var target:MovieClip = new Ex_mc2();
target.x=100;
target.y=300;
addChild(target);
var bounds:Rectangle = target.getBounds(this);
var bmpData:BitmapData = new BitmapData(Math.floor(bounds.width), Math.floor(bounds.height), true, 0);
var bmpMatrix:Matrix = target.transform.matrix;
bmpMatrix.translate(-bounds.x, -bounds.y); // Draw bitmap
bmpData.draw(target, bmpMatrix);
var bmp:Bitmap = new Bitmap(bmpData);
bmp.x=100;
bmp.y=300;
addChild(bmp);
removeChild(target);
//bmpData.dispose(); I want to use this and i dont want my bmp disappear
寻找解决方案一周,但我无法弄清楚。所以我的问题是;
我可以将movieClips转换为位图并释放内存吗?就像添加一个静态 png 文件一样?