Map储存spriteFrame,在切换scene时被自动释放,如何保存防止被自动释放

我是用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里面,

  1. 不自动释放资源
  2. 添加引用 addRef

谢谢,我刚刚也有测试成功了