如何获取spine骨骼动画中的指定贴图, loadRes貌似无效

spine骨骼动画通过texturepacker会生成图集文件(atlas)。
目前我们有一个需求就是游戏运行时,抽出图集中的某张图生成单独的sprite, 生成单独的动画。
参考了这个帖子: http://forum.cocos.com/t/cc-loader-getres/36994/8
不过目前通过loadRes这样加载的骨骼动画,是sp.SkeletonData类型,没有getSpriteFrame方法来获取单个图片.

cc.loader.loadRes(“spine/demo”, sp.SkeletonData, (err, skeletonData) => {

    });

尝试使用loadRes重新加载一次atlas, 却提示文件不存在, 是因为spine生成的atlas和普通的格式不同吗?我看了下spine生成的图集位置信息是存在".atlas"文件里的。普通的texturepacker生成的atlas应该是".plist"文件.

cc.loader.loadRes("spine/demo", cc.SpriteAtlas, (err, atlas) => {
        console.log(err);

    });

Error: cc.SpriteAtlas in “resources/spine/demo” does not exist.

另外就是,我这样重新加载的方式对吗? 按理说spine骨骼动画加载一次就应该在内存里了,是不是有什么接口可以直接获取? 目前测试通过以下方式可以得到整张图,但是始终无法获取单张图this.spine.findSlot(‘bd4’).getAttachment().region.renderObject.texture.getRealTexture();

是啊,完全不同,单张图只能你自己解析 atlas 文件,然后 new SpriteFrame,设置里面的 xy offset 什么的了。

另外,你这样重新加载没问题啊,在内存中的话,会从缓存中获取,不会真正重新加载。你也可以用 cc.loader.getRes(“spine/demo”, sp.SkeletonData)

明白了多谢,自己解析可以了,只占用一份内存挺好。