简单说下我咋做的吧 虽然可能很简单 相信也有像我这么菜的人会遇到同样的问题
1先把三个文件down下来 保存到微信本地
nameatlas namejson namepng 三个变量是 spine的atlas json 和 png的文件在保存在微信本地的路径 我的是
http://usr/demo.atlas http://usr/demo.atlas 和 http://usr/demo.png 注意文件名一样
涉及到的微信api是
wx.downloadFile
fileSystemManager.saveFile
fileSystemManager.rename
2 把三个资源都load一下
cc.loader.load(nameatlas,function (err, res) {
res 保存一下 赋值给 this.res_atlas
判断三个是否都load完 执行loadspine()
});
cc.loader.load(namejson,function (err, res) {
res 保存一下 赋值给 this.res_json
判断三个是否都load完 执行loadspine()
});
cc.loader.load(namepng,function (err, res) {
判断三个是否都load完 执行loadspine()
});
3 我抄了下源码的内容 在loadspine() 里执行
this.spine_node 是我在游戏里预设的一个spine 游戏中直接替换skeletonData内容
sp._atlasLoader.setAtlasFile("http://usr/demo.atlas");
let atlas = new sp.spine.TextureAtlas(this.res_atlas, sp._atlasLoader.load.bind(sp._atlasLoader));
var attachmentLoader = new sp.spine.AtlasAttachmentLoader(atlas);
var skeletonJsonReader = new sp.spine.SkeletonJson(attachmentLoader);
let skeletonData = skeletonJsonReader.readSkeletonData(this.res_json);
atlas.dispose(skeletonJsonReader);
this.spine_node.setSkeletonData(skeletonData, true);
然后 执行就好了
let spComp = this.spine_node.getComponent('sp.Skeleton')
spComp.setAnimation(0, "animation", true);