请问一下cc.loader.loadRes 在加载场景时,如何保存加载的资源(因为load时,不同步,但不知道用什么比较好的方案先保存这些资源)
比如spriteframe要用什么方式来保存
prefab等需要cc.nodepoor来保存么
自已定义个obj保存一下就可以了。或者从cc.loader._cache中取。
cc.loader.loadRes(url, type, function (err, res) { // cc.log("loadAsset cb", url, err, res) if (err) { return; } var name = res._name; self.urlToNameMap[url] = name; if (res instanceof cc.Prefab) { self.perfabMaps[name] = res; } else if (res instanceof cc.SpriteFrame) { self.spriteFrameMaps[name] = res } else if (res instanceof cc.SpriteAtlas) { self.spriteAtlasMaps[name] = res } else if (res instanceof cc.TiledMapAsset) { self.tiledMapAssetMaps[name] = res } });
我是这样写的。你可以参考下。记得release的时候要把这里的引用去掉。 其实这也不算保存,只是把加载的资源用一个对像关联一下,用的时候方便点。这里也只是添加了一个引用。
多谢,跟我的想法差不多,看来只能这样了