我是用cc.AssetManager.Bundle 里面的loaddir来读取folder内所有图片的。
load完后的储存方式是这样
private itemDB = new Map<string, cc.SpriteFrame>();
public saveSpriteFrames(spriteFrames: cc.SpriteFrame[]) {
spriteFrames.forEach((spriteFrame) => {
this.itemDB.set(spriteFrame.name, spriteFrame);
});
}
public getItemSprite(name: string): cc.SpriteFrame {
const data = this.itemDB.get(name);
if (!data) {
cc.error('sprite no find name:' + name);
return this.itemDB.get('ItemIconEmpty');
}
return data;
}
在切换Scene时,我猜想Scene有自动释放资源,所以有些spriteframe被释放掉了,尝试过使用Texture储存,但是还是被释放掉了,想请问不重新load回来的话要怎么正确的存在Map里面,