创建龙骨
将龙骨导出后,会生成 龙骨json、纹理集。
代码:
- 创建龙骨工厂
var dragonbonesData = RES.getRes( "xinghuo_ske_json" );
var textureData1 = RES.getRes( "xinghuo_tex_0_json" );
var texture1 = RES.getRes( "xinghuo_tex_0_png" );
var textureData2 = RES.getRes( "xinghuo_tex_1_json" );
var texture2 = RES.getRes( "xinghuo_tex_1_png" );
var textureData3 = RES.getRes( "xinghuo_tex_2_json" );
var texture3 = RES.getRes( "xinghuo_tex_2_png" );
var dragonbonesFactory: dragonBones.EgretFactory = new dragonBones.EgretFactory();
dragonbonesFactory.addDragonBonesData( dragonBones.DataParser.parseDragonBonesData( dragonbonesData ) );
dragonbonesFactory.addTextureAtlas( new dragonBones.EgretTextureAtlas( texture1, textureData1 ) );
dragonbonesFactory.addTextureAtlas( new dragonBones.EgretTextureAtlas( texture2, textureData2 ) );
dragonbonesFactory.addTextureAtlas( new dragonBones.EgretTextureAtlas( texture3, textureData3 ) );
有时会出现纹理集过大的情况,需要通过导出多个纹理集来控制大小。
- 创造骨骼
this.armature = dragonbonesFactory.buildArmature( "name" );
this.armatureDisplay = this.armature.getDisplay();
private createAnim() {
dragonBones.WorldClock.clock.add( this._armature );
this._armature.animation.gotoAndPlay( "动画名称" );
this.isStartPlayMainAnim = !this.isStartPlayMainAnim;
this.ticker = egret.Ticker.getInstance();
this.ticker.register( this.updata, this );
}
private updata( frameTime: number ) {
dragonBones.WorldClock.clock.advanceTime( 0.01 );
}
- 动画控制器
this.armature.animation
- 事件
/*开始播放动画*/
dragonBones.AnimationEvent.START
/*动画循环播放一次完成*/
dragonBones.AnimationEvent.LOOP_COMPLETE
/*动画播放到关键帧*/
dragonBones.AnimationEvent.ANIMATION_FRAME_EVENT