cc.loader.loadRes 导入骨骼动画

    cc.loader.loadRes(‘xxxxx’', cc.skeletonData, function (err, skeletonData) {
        if (err) {
            cc.error(err.message || err);
            return;
        }
        actorBody.skeletonData = skeletonData;
    });

error:this.skeletonData.getRuntimeData is not a function

这样写有问题么,

看很老的 用这个 cc.loader.loadResAll,现在的api 没这个方法了,用 loadResDir 吗?

回调函数没绑定this,或者你的actorBody类型不对

类型应该没问题 actorBody = body.getComponent(‘sp.Skeleton’)

cc.loader.loadResDir
使用这个
参考这个帖子中关于龙骨动画的demo
https://forum.cocos.com/t/cocoscreator/71010?u=337031709

就是建一个空的 sk.Skeleton 属性,然后代码里面赋值skeletonData 。
demo如下:BoneDemo.rar (810.9 KB)

不是这个帖子吧

https://github.com/Jno1995/dragonBone-spine_Dome

里面没有spine 的 load ,

建一个空属性,然后从资源文件里导入

看下这个demo,BoneDemo.rar (810.9 KB)

参考下我修改的这个代码
动态加载spine的例子也会补上去的

        cc.loader.loadResDir('bones/test_guai_001', sp.skeletonData, function (err, Data) {
            if (err) {
                cc.error(err.message || err);
                return;
            }
            let actorBone = this.actor1.getComponent('sp.Skeleton');
            actorBone.skeletonData = Data[3];
            actorBone.animation = 'walk_zhanli';
            actorBone._updateSkeletonData();
        }.bind(this));

谢谢 ,可以了,但是为什么Data 下标 是3 呢,

看来应该是这行写错了

cc.loader.loadRes(‘xxxxx’', cc.skeletonData, function (err, skeletonData) {

类型应该是sp.SkeletonData

关于动态加载spine的demo我已经更新
https://github.com/Jno1995/dragonBone-spine_Dome

loadResDir会加载文件夹下的所有同名文件

creator 模拟器里 运行没问题,微信开发工具里面,就报错了,creator 是2.1.0,微信开发工具 也是最新的

web pc呢?

浏览器 运行 也是可以的,就是微信工具不行,您试一下

看了新demo,
loadRes 可以在微信里运行,但是creator 模拟器却跑不了
loadResDir 可以再模拟器里跑,却不能在微信工具里跑 :joy:

我的creator是2.1.0,打包我的demo在模拟器和微信上运行正常。