AS3:是否需要调用BitmapData.dispose()?

Mat*_*Mat 1 air flash garbage-collection actionscript-3 bitmapdata

是否需要为每个想要完全从内存中删除的BitmapData调用BitmapData.dispose(),或者只要BitmapData对象被垃圾回收,该缓冲区是否会被释放?

Jas*_*ges 8

最终BitmapData将通过垃圾收集处理.

调用BitmapData.dispose()立即释放内存,这可以提高性能,尤其是在基于帧的动画中大量使用位图数据时.位图数据可以快速消耗大量内存.

位图数据,来自Adobe Flash Platform的ActionScript 3.0参考

BitmapData.dispose()立即释放实际位图数据占用的内存(位图最多可消耗64 MB内存).使用BitmapData.dispose()后,BitmapData对象不再可用,如果在BitmapData对象上调用函数,Flash运行时将引发异常.但是,BitmapData.dispose()不会垃圾收集BitmapData对象(大约128个字节); 在垃圾收集器收集BitmapData对象时释放实际BitmapData对象占用的内存.