Egret之龙骨换装
需求:
找到了黄马褂的结构:
我们新建一个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"));
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。