Creator动态加载的资源释放

不太理解官方文档描述的资源释放,调用了cc.loader.release()的接口,内存也没有释放掉。

按照文档的描述,通过cc.loader.loadRes()接口加载进来的资源,会有一个依赖项,比如加载了一个cc.SpriteFrame,那么他的依赖项应该是一个cc.Sprite,一个精灵,如果要释放掉场景中的这个资源,应该是把 Sprite和cc.loader中缓存的cc.SpriteFrame都一起从场景中剔除吧?

用的demo是这个:

// 如果在这个 prefab 中有一些和场景其他部分共享的资源,你不希望它们被释放,可以将这个资源从依赖列表中删除
var deps = cc.loader.getDependsRecursively(‘prefabs/sample’);
var index = deps.indexOf(texture2d._uuid);
if (index !== -1)
deps.splice(index, 1);
cc.loader.release(deps);

结果会报错哦。:confounded:

有无大佬可以帮忙解答一下哇~~~~

如果你加载的是一个 cc.SpriteFrame 那么它的依赖项是 texture2d 对象以及 texture2d 对象依赖的 纹理图

关于释放demo的问题
假如你要排除掉一个预制中的某些依赖 首先要明确知道依赖项持有者: 可以是 url 最好是 cc.Asset 类型的资源 先获取该资源所有依赖 cc.loader.getDependsRecursively,然后再用 循环一一从 预制体的依赖项中剔除

那其实如果只是释放我暂时不需要用到的预制体,直接cc.loader.release(url/cc.prefab)就可以了是吧?可是调用了cc.loader.release()之后,貌似他的内存没有降下去呀?
我看 ”保卫萝卜“ 微信小游戏,貌似他们主场景的东西基本都是动态挂载上去的,然后关闭以后又重新载入,这样对手机内存没那么大压力。

关键在于release 这一步,看了文档,试了好久都达不到我要的效果

如果你是指浏览器上的释放,好像还需要什么操作

微信小游戏哇,好像论坛里有个大大说,不管怎样子release()都不可能完全删掉他的引用,我就想搞清楚一点,是不是知道调用了cc.loader.release()了以后,动态加载的prefab,spriteFrame等这些东东,会从Loader的缓存里释放掉?会从内存中清除吗?

:sob::sob::sob::sob::sob::sob:
有没有大佬回复一下小弟哇~~~~