2012-07-03 68 views

回答

8

最終BitmapData將被垃圾收集處置。

調用BitmapData.dispose()立即釋放內存,這可以提高性能,尤其是在基於幀的動畫中大量使用位圖數據時。位圖數據可以快速消耗大量內存。

BitmapData, from the ActionScript 3.0 Reference for the Adobe Flash Platform

BitmapData.dispose()釋放由實際的位圖數據 佔用的存儲器,立即(位圖可以消耗高達64MB的存儲器)。在 使用BitmapData.dispose()後,BitmapData對象不再可用 ,如果您調用 BitmapData對象上的函數,則Flash運行時會引發異常。但是,BitmapData.dispose()不會垃圾 收集BitmapData對象(大約128字節);實際BitmapData對象佔用的內存 在垃圾回收器收集到 BitmapData對象時釋放。

+0

我不知道爲什麼,但是當我像這樣調用dispose()時:'bitlayer.bitmapData.dispose(); bitlayer.bitmapData = new BitmapData(width,height,true,0);'很多時候,閃存快速增長。相反,如果我設置null:'bitlayer.bitmapData = null; bitlayer.bitmapData = new BitmapData(width,height,true,0);'閃存根本不增長。我認爲'dispose()'有一個bug。 – marbel82