0
我正在使用Flash CS6和AIR的手機遊戲。也在同一平臺上進行設計和編碼(不使用starling等)。使用Dispose將MovieClip轉換爲位圖()
我將movieClip(靜態,而不是動畫)動態轉換爲位圖,它的工作正常。但我意識到這個過程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
尋找解決方案一個星期,但我無法弄清楚。 所以我的問題是;
我可以將movieClip轉換爲位圖並釋放內存嗎?像添加一個靜態PNG文件?
謝謝,所以如果我明白了吧,在靜態PNG上添加舞臺或使用bitmapData轉換movieclip沒有區別?我必須處理內存使用情況? – mtilhan
正確。無論哪種情況,您都會有一個表示圖像數據的「BitmapData」對象。 –
感謝您的解釋。我浪費了整整一週的時間 – mtilhan