Cc.loader.getRes获取不到cc.SpriteAtlas类型问题

请问 cc.loader.loadRes(url, cc.SpriteAtlas, loadCallBack);加载的atlas,然后用cc.loader.getRes(url)获取资源,得到的不是cc.SpriteAtlas,而是Texture2D,为啥啊?

获取不到的!这个的自己封装!如果你要获取cc.SpriteAtlas里面SpriteFrame,首先你得找个变量存SpriteAtlas,然后走这个SpriteAtlas去获取SpriteFrame,这个设计很扯淡,根本不能走cc.loader.getRes(url)获取以加载好的cc.SpriteAtlas中的SpriteFrame,所以资源管理这块还的自己封装!

因为同一个 url 下有 atlas 又有 Texture2D,之后我们会允许传入一个类型参数用来区别二者

之前曾经设计过一版是可以这样获取的可是那样的话无法区分 foo.plist/sprite1 这个 url 中的 foo.plist 是否是一个文件夹的名字,如果是的话那个文件夹下面的 sprite1 这个资源有可能会被加载进来。

建议 loader 加载进来的资源,自己缓存在一个全局对象中。

如果是这样的话,你们就规定foo.plist/sprite1(“/“这个符号为文件夹路径),如果是SpriteFrame的画用其他符号表示,比如:foo.plist#sprite1,或者foo.plist$sprite1。你看这样中方案可行不!(只是建议!)

你说的方案我们不是没有考虑过,只是觉得在 url 上玩这个有点太蛋疼了。实际上用户完全可以 getRes(“foo.plist”).getSpriteFrame(‘sprite1’)

确实是!我记得上次直播中,好像听到说,panda又在重构cc.loader啊!

啊,是啊,重构完了,这次应该可以消停一段时间,一个版本左右可以稳定吧,有问题反馈哦~

66666666666:+1:

getRes 类型的指定将会在 1.4 中得到支持