如题,我使用如下代码加载了一张图片,并且赋值给了一个精灵
assetManager.loadRemote(url, function (err, image: ImageAsset) {
if (err) {
return log(err);
}
let frame = new SpriteFrame();
frame.texture = image._texture;
this.headSprite.spriteFrame = frame;
});
这样子写是没有问题的。我现在很频繁的调用这个代码。比如说每5秒一次。加载一个远程的图片资源赋值给我的精灵。会发现内存有规律的暴涨。我觉得是因为随着加载次数的增多。内存中图片资源越来越多。导致的。我尝试如下写法
let oldFrame = this.headSprite.spriteFrame;
assetManager.releaseAsset(oldFrame);
在每次加载新的图片之前,都先通过assetManeger去释放旧的图片。但是没有效果。
于是我换成这种写法,然后一堆报错。游戏也出现了大量的花屏之类。
let oldFrame = this.headSprite.spriteFrame;
assetManager.releaseAsset(oldFrame.texture);
不知道正确的写法应该是什么样子的哦。