如何从控制器中删除位图,从Flash Player内存中删除bitmapData?
var _myThumb:Bitmap;
var _myThumbData:BitmapData;
var bitmap:Bitmap
//
function createThumbs()
{
_myThumbData = new BitmapData(pic.picdefault.width,pic.picdefault.height,false,0xffffff);
//
picthumbs.t1.holder.addChild(createBitmap(_myThumbData));
picthumbs.t2.holder.addChild(createBitmap(_myThumbData));
picthumbs.t3.holder.addChild(createBitmap(_myThumbData));
picthumbs.t4.holder.addChild(createBitmap(_myThumbData));
picthumbs.t5.holder.addChild(createBitmap(_myThumbData));
}
function createBitmap(bmd:BitmapData):Bitmap
{
var bitmap:Bitmap = new Bitmap(bmd);
bitmap.smoothing = true;
setSize(bitmap, bmd.width, bmd.height, 94, 94);
return bitmap;
}
function setSize(target:DisplayObject, contentWidth:Number, contentHeight:Number, targetWidth:Number, targetHeight:Number):void {
var w:Number = targetWidth;
var h:Number = targetHeight;
var containerRatio:Number = targetWidth / targetHeight;
var imageRatio:Number = contentWidth / contentHeight;
if (containerRatio < imageRatio) h = w / imageRatio;
else w = h * imageRatio;
target.width = w;
target.height = h;
target.x = (targetWidth - w) * .5;
target.y = (targetHeight -h) * .5;
}
//
function createThumbnail()
{
_myThumbData.draw(pic.picdefault);
} 发布于 2011-09-12 07:56:04
假设持有者只是一个空的MovieClip,那么您可以简单地执行以下操作:
picthumbs.t1.holder.removeChildAt(0);这将删除对Bitmap的引用,从而使其符合垃圾收集的条件。由于BitmapData仅由位图引用,而位图不再被引用,因此它也将从内存中删除。
发布于 2011-09-12 10:18:50
调查一下BitmapData.dispose()。
https://stackoverflow.com/questions/7382099
复制相似问题