[]纹理截取后内存释放不了
private var oriDBArr:Array = null;//位图源
var tex:Texture = Laya.loader.getRes(_url);
for (var i:int = 0; i < list1["oriBDPos"].length; i++ )
{
var g:Graphics = new Graphics();
var t:Texture = Texture.createFromTexture(tex, posObj.x, posObj.y, posObj.w, posObj.h);
g.drawTexture(t, 0, 0);
oriDBArr[i] = g;
}
private function onClear():void
{
console.log(Laya.loader.getRes(_url));
Loader.clearRes(_url,true);
console.log(Laya.loader.getRes(_url));
}
将一个大图截成多个小图纹理以后,截出来纹理内存好像不能释放,
如果强行调用t.destroy(true) 会清除掉己使用的纹理,会乱掉
截取出来的纹理内存怎么能很好的释放
var tex:Texture = Laya.loader.getRes(_url);
for (var i:int = 0; i < list1["oriBDPos"].length; i++ )
{
var g:Graphics = new Graphics();
var t:Texture = Texture.createFromTexture(tex, posObj.x, posObj.y, posObj.w, posObj.h);
g.drawTexture(t, 0, 0);
oriDBArr[i] = g;
}
private function onClear():void
{
console.log(Laya.loader.getRes(_url));
Loader.clearRes(_url,true);
console.log(Laya.loader.getRes(_url));
}
将一个大图截成多个小图纹理以后,截出来纹理内存好像不能释放,
如果强行调用t.destroy(true) 会清除掉己使用的纹理,会乱掉
截取出来的纹理内存怎么能很好的释放
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
Laya_XS
赞同来自: xzc520
小于512的图片使用时会自动被引擎底层创建的动态大图合集缓存下来,你如果不打开内存自动释放是清理不掉内存的,大于512的图片你可以通过Loader.clearRes来清理释放掉内存。
如果你从大图里复制一个小图,然后在把小图清理了,这时大图上的小图也会被清理掉,因为他们图片有的是同一份,所以不建议你清理大图上的小图,要么你释放大图,要不不释放!