【龙骨】dragonBones换装

这个强,可惜你用的是龙骨,求spine实作

replaceSlotDisplay 绑定已经更新
目前还有一个问题就是 需求3里面说的
如果之前这个插槽上已经设置了静态图片,直接设置childArmature的话可能会造成位置异常,所以最好是先清空再设置
在h5上 我直接slot.display = null 就可以了但是我发现在native上 不能直接调用.display这种方式
要用setDisplay(value,displayType) 这就有点坑了 h5和native的api居然不一致。。心累

跟spine一样的,H5上的实作跟native里的不一样
我为了要让spine的Slot消失,自已改了C++代码

大佬 请问你实现在原生平台 使用SpriteFrame 来进行换装吗,能发下代码吗, headSlot.setDisplay(spriteFrame1,dragonBones.DisplayType.Image)这段代码只在浏览器平台生效

slot.setDisplay这个函数应该有,你发下报错是什么?可以试下把dragonBones.DisplayType.Image直接换成0试下

creator 版本1.9.1,按照上面的修改了c++的replaceSlotDisplay和getSlots,编译运行之后图片有偏差,要替换的插槽是在骨骼原点,想问下你那边不偏差的嘛,或者是有什么地方需要注意的。

var slot = this._armature.getSlot(strSlotName+“Slot”);
if(!slot) return;
this._factory.replaceSlotDisplay(“zhujue”,“test11”,“qishijan”,“zhujue/qishijian”,slot);

我这里没这个问题,替换的slot和被替换的slot的原点,保持一致的话应该不会有这个问题,你可以看下是不是原点不一致导致的

克隆的原件,然后把要替换的slot单独拉出来,放入新的图片,对好位置,还是有偏差

你这里是替换了texture吧?这个我没试过,好像是会有位置的问题 这个只能你自己调试了 帮不了你

这个应该是替换的是插槽吧,对了我像问下原点是坐标还是锚点

请问你试过APP原生平台吗 具体代码是怎么实现的呢?

你好,是原生平台哦 headSlot.setDisplay(spriteFrame1,0),用这段代码不能替换卡槽图片 而且原本的卡槽图片还会消失

能发个demo学习下吗?

吃瓜群众,坐等demo学习

let slot = armature.getSlot(“weapon”);
factory.replaceSlotDisplay(“dragonBonesName”, “armatureName”, “slotName”, “displayName”, slot);

请问官方提供的这两个,为什么在里面报错!~

19年了,方法一现在可行吗?

请问一下,方案1现在可以实现了么?

cocos官方文档上龙骨换肤就是方法一,不过在原生平台上会存在错位问题。

原生版本错位怎么解决?

最近项目升级到2.2.0 升级了下换装的代码,看论坛换装的帖子都是旧的,官方的文档那种方式太笨重了(需要创建龙骨节点) 就更新下帖子。
//先加载龙骨资源
let asset,atlas;
for (let i=0;i<assets.length;i++) {
if (assets[i] instanceof dragonBones.DragonBonesAsset) {
asset = assets[i];
}
else if (assets[i] instanceof dragonBones.DragonBonesAtlasAsset) {
atlas = assets[i];
}
}
if (asset && atlas && factory) {
atlas.init(factory);
let key = asset.init(factory,atlas._uuid);
factory.buildArmatureDisplay(armatureName , key, “”, atlas._uuid);
//替换骨架
factory.replaceSlotDisplay(key,armatureName,slotName,displayName,slot);
}