[LayaAir 2.0]2.0下资源加载和销毁内存问题

几段代码,分别为1.0和2.0.发现一个问题,操作如下
一个按钮,点击后加载显示一张图片,再点击销毁,重复点击N此。。
例如当前curmem为18M
结果如下:
1.0下 点击显示图片,curmem增加2M为20M,再次点击销毁后回复18M,点击N次后curmem没区别。
2.0下,点击图片,curmem增加2M为20M,再次点击销毁后为20M,再次点击显示为22M,以此类推。
而 代码中的区别仅仅是
 Laya.loader.clearRes(this.szurl,true); //1.0
Laya.loader.clearRes(this.szurl);//2.0
 
现在附完整代码,劳驾帮看下是不是我2.0版本的有什么问题。最后也附上有代码的截图,laya社区帖子编辑模式有点太低端了,发布的代码不好辨识,就附上了截图。
备注:测试图片大小为640*1038,900K
 
 先创建一个img实例
class bitmapimg extends Laya.Image //2.0版本 这里区别为export default class bitmap extends Laya.Image
{
private szurl:string=""
constructor(url:string){
super()
this.onUrlChangeHandler(url);
}
protected onUrlChangeHandler(url:string):void
    {
if(this.szurl!="") this.disp()
this.szurl=url;
if(url==null){
this.graphics.clear();
}else{
this.skin=url;
}
}
public disp(){
this.skin="";
if(this.szurl){
Laya.loader.clearRes(this.szurl,true); //***2.0这里写法为Laya.loader.clearRes(this.szurl);
}
}
public set url(value:string){
this.onUrlChangeHandler(value);
}
}
然后在首页调用
首页代码如下:
 
//2.0版本区别为这里需要先import bitmapimg from "./script/bitmapimg ";
private flag:boolean = false;
    private bt:bitmapimg;
    private oldurl:string=""
/**此处省略btn创建*/
private onClick():void
    {
if(this.flag==false){
            let url:string="test2/1.png"
            if(this.oldurl!=url){
                this.oldurl=url;
                if(this.bt==null){
                    this.bt=new bitmapimg(url);
                    this.sp.addChild(this.bt)
                }else{
                    this.bt.url=url;
                }
            }
            this.flag=true;
        }else{
            this.sp.removeChild(this.bt);
            this.bt.disp();
            this.bt=null;
            this.flag=false;
            this.oldurl=""
        }
}
这里代码不好认,顺便附上 截图,依次为1.0,2.0版


111.png



22.png


 
已邀请:

Aar0n

赞同来自:

这个引擎底层的bug 下周发的新版会修复。

187*****595

赞同来自:

这个问题好了吗 我这边资源释放不掉  我已经升级到最新的2.0.2  具体怎么释放atlas图集呢 郁闷死了 搞了好长时间了 也没有具体的教程

Aar0n

赞同来自:

(getRes(“xxx”) as Laya.Resource).destroy

要回复问题请先

商务合作
商务合作