egret-docs-master/DB/dbLibs/replaceTexture/README.md

44 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### 局部换装
原有换装方案可以替换对应slot中的图片实现但会存在图片位置错位问题。新版本局部换装功能可通过DragonBones预设置替换内容实现此功能。
原始动画如下:
![](577f7e442a524.png)
我们可以替换其头发的内容新建一个DragonBones项目将新头发加入其资源库然后放入场景中。
具体替换创建新项目的原因在于获取图片轴点与骨骼原点的相对位置。
在新项目中调整好头发的位置后,导出数据。
![](577f7e4445bba.png)
在上面的代码中继续添加如下代码。
~~~javascript
this.factory.parseDragonBonesData(RES.getRes("new_json"));
this.factory.parseTextureAtlasData(RES.getRes("new_texture_json"), RES.getRes("new_texture_png"));
this.factory.replaceSlotDisplay( "NewProject", "Armature", "ti", "bb", ar.armature.getSlot("Atoufa"));
~~~
通过`replaceSlotDisplay`方法来替换其中头发的内容其中第一个参数为DragonBonesName如果你在解析DragonBones数据时未添加其参数那么该参数可以填写`null`或者填写项目名称。
后面三个参数均为数据源标记最后一个参数则是要替换的目标slot。
编译后运行效果如图:
![](577f7e4460b84.png)
你可以在新项目中放置多个即将替换的纹理素材,然后在局部替换时,选择你所需要的贴图纹理。
### 全局换装
全局换装可实现将一个骨骼动画的骨架中全部贴图替换,如果使用全局换装功能,则新骨骼动画纹理集与源骨骼动画纹理集必须尺寸以及内部元素尺寸相同。
你可以使用如下代码来进行全局换装
~~~javascript
ar.armature.replaceTexture(RES.getRes("new_db_texture_png"));
~~~