cc.loader.loadRes,获取指定精灵帧

之前是用的cocos2dx,获取指定精灵图片的问题
比如有2个图集,a.plist, b.plist,在游戏加载界面,已经使用cc.load.loadRes加载了。后续在游戏里,想使用a或者b图集里一个精灵帧,改如何获取,而且并不知道想使用的这个精灵帧是在图集a里或者在图集b里

加载页面 用一个对象存在 常驻节点上 后面的场景都可以从这个地方获取

cc.loader.loadRes(url, cc.SpriteAtlas, (err, atlas) => {});
是指把这个atlas存起来?
可是后续使用的时候,我并不知道我想用的这个精灵帧在按个图集里?
以前用cocos2d-x的时候,加载图集后,直接放入spriteFrameCache,后续直接从spriteFrameCache里面拿?
现在呢怎么拿?

spriteFrameCache 只是个全局对象罢了, 其实 你加载进来就已经有缓存了, 你自己弄个全局对象引用也可以, 不过要注意手动释放和维护

给你看一下代码 你理解一下
atlas 这是一个文件夹
加载页代码 加载整个文件夹下的3个图集
cc.loader.loadResDir(“atlas”, cc.SpriteAtlas,(err, atlas,urls)=>{
//保存3个类别的图集到数组
this.gameManager.setSpritFrameArray(atlas);
})

常驻节点代码
this.spriteFramesArray[0] = atlas[0].getSpriteFrames();
this.spriteFramesArray[1] = atlas[1].getSpriteFrames();
this.spriteFramesArray[2] = atlas[2].getSpriteFrames();

然后这个spriteFramesArray 里面就可以到处用了 用常驻节点获取就可以了

你这样存起来,如何通过精灵帧名字找到指定的精灵帧?
还有,我并不知道,想使用的这个精灵帧是在哪个图集里?

哦 你这个需求 可能需要写一个类似map的array了 不然还真区分不出来

对呀,之前用的SpriteFrameCache就很简单啊,加载的时候,直接往SpriteFrameCache里塞,
想用的时候,就通过精灵帧名字,从SpriteFrameCache里面拿
我想这样的需求应该是很常见的吧,为什么没人关注过这样的问题?