需求:

找到了黄马褂的结构:

我们新建一个DragonBones项目 , 用以为上述黄马褂换肤

我们对DragonE_view进行修改

///<referencepath="./../tools/DragonBoneTools.ts"/>moduleapp{exportclassDragonE_Viewextendseui.Componentimplementseui.UIComponent{privatecom_dragon:eui.Group;privateimg_dragon:eui.Image;privatetxt_name:eui.Label;privateegretFactory:dragonBones.EgretFactory;privateeff_robot:dragonBones.EgretArmatureDisplay;publicconstructor(){super();this.skinName="resource/eui_skins/DragonE.exml";}protectedpartAdded(partName:string,instance:any):void{super.partAdded(partName,instance);}protectedchildrenCreated():void{super.childrenCreated();this.txt_name.text="Snow";this.img_dragon.source=RES.getRes("egret_icon_png");this.playDragonEff();}/***刷新机器人特效*/publicplayDragonEff():void{//this.loadChibangByResName("Robot_json");this.loadChibangByResName("Dragon_ske_json");}/***异步Robot动画资源*/privateloadChibangByResName(name:string):void{varself=this;RES.getResAsync(name,function(data:any,key:string):void{if(key=="Dragon_ske_json"){self.loadChibangByResName("Dragon_tex_json");}elseif(key=="Dragon_tex_json"){self.loadChibangByResName("Dragon_tex_png");}elseif(key=="Dragon_tex_png"){this.showRoleWing();}},this);}/***展示Robot特效*/privateshowRoleWing(wingId:number):void{this.egretFactory=tools.DragonBoneTools.Instance.createEff2New("Dragon_ske_json","Dragon_tex_json","Dragon_tex_png",);this.eff_robot=this.egretFactory.buildArmatureDisplay("Dragon");this.addChild(this.eff_robot);this.eff_robot.animation.play("jump",0);this.eff_robot.x=200;this.eff_robot.y=450;this.stage.addEventListener(egret.TouchEvent.TOUCH_BEGIN,this.onTouch,this);}privateonTouch(evt:egret.TouchEvent):void{if(evt.type==egret.TouchEvent.TOUCH_BEGIN){this.changeClothes();}}privatechangeClothes():void{this.loadChangeByResName("DragonChange_ske_json");}privateloadChangeByResName(name:string):void{varself=this;RES.getResAsync(name,function(data:any,key:string):void{if(key=="DragonChange_ske_json"){self.loadChangeByResName("DragonChange_tex_json");}elseif(key=="DragonChange_tex_json"){self.loadChangeByResName("DragonChange_tex_png");}elseif(key=="DragonChange_tex_png"){this.changeRoleWing();}},this);}privatechangeRoleWing():void{this.egretFactory.parseDragonBonesData(RES.getRes("DragonChange_ske_json"));this.egretFactory.parseTextureAtlasData(RES.getRes("DragonChange_tex_json"),RES.getRes("DragonChange_tex_png"));this.egretFactory.replaceSlotDisplay("DragonChange","Armature","clothes2","clothes2",this.eff_robot.armature.getSlot("clothes"));}}}

重点 :

this.egretFactory.parseDragonBonesData(RES.getRes("DragonChange_ske_json"));
this.egretFactory.parseTextureAtlasData(RES.getRes("DragonChange_tex_json"), RES.getRes("DragonChange_tex_png"));
this.egretFactory.replaceSlotDisplay( "DragonChange", "Armature", "clothes2", "clothes2", this.eff_robot.armature.getSlot("clothes"));


replaceSlotDisplay : 替换一个骨头的显示

第一个参数 : 替换项目的名称

第二个参数 : 替换目场景名字

第三个参数 : 替换项目的骨骼名字

第五个参数 : 替换项目的图片名字

第五个参数 : 被替换项目的卡槽


结果 :


全局换装 ::://将图集全部替换

ar.armature.replaceTexture(RES.getRes("new_db_texture_png"));