首页 > 编程知识 正文

解决 白鹭引擎 egret 龙骨动画 Deprecated 已废弃

时间:2023-05-06 11:47:25 阅读:181718 作者:2387

官方文档中的关键视频的调用方法和事件的监听方法,在实际项目中表示已经被废弃了。 因为在网上也没有找到一个讨论和解决这个问题的帖子,所以我自己摸索了一下。 以下投稿解决方法。

这是在网上找到的常见写法:

专用creategamescene () : void {

vardragonbonesdata=RES.get RES (robot game _1_ JSON );

vartexturedata=RES.get RES (texture _ JSON );

var texture=RES.get RES (texture _ png );

vardragonbonesfactory : dragon bones.egret factory=newdragonbones.egret factory ()

dragonbonesfactory.adddragonbonesdata (dragon bones.data parser.parsedragonbonesdata ) dragonbonesdata;

dragonbonesfactory.addtextureatlas (newdragonbones.egrettextureatlas ) texture,textureData );

var armature : dragon bones.armature=dragonbonesfactory.build armature (' robot );

vararmaturedisplay=this.armature.get display (;

this.addchild(Armaturedisplay;

armatureDisplay.x=200;

armatureDisplay.y=300;

armatureDisplay.scaleX=0.5;

armatureDisplay.scaleY=0.5;

dragon bones.world clock.clock.add (armature );

armature.animation.goto and play (' run );

egret.Ticker.getInstance ().register(function ) frametime:number ) {

dragon bones.world clock.clock.advance time (0.01 ) )。

(,this );

armature.addevent listener (dragon bones.animation event.start,this.startPlay,this );

armature.addevent listener (dragon bones.animation event.loop _ complete,this.loop_com,this );

armature.addevent listener (dragon bones.frame event.animation _ frame _ event,this.frame_event,this );

}

privatestartplay (evt : dragon bones.armature event ) )。

{

console.log(Armature开始动画! ' );

}

私有loop _ com (evt : dragon bones.armature event ) )。

{

console.log(Armature视频的播放结束了! ' );

}

私有帧_ event (evt : dragon bones.frame event ) )。

{

console.log(Armature播放了关键帧! 帧标签为',evt.frameLabel;

}

privatecreategamescene (: void ) vardragonbonesdata=RES.get RES (robot game _1_ JSON ); vartexturedata=RES.get RES (texture _ JSON ); var texture=RES.get RES (texture _ png ); vardragonbonesfactory : dragon bones.egret factory=newdragonbonesfactory (dragonbonesfactory.addragonbonesdata

nesData(dragonbonesData));    dragonbonesFactory.addTextureAtlas(new dragonBones.EgretTextureAtlas(texture,textureData));      var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot");     var armatureDisplay = this.armature.getDisplay();    this.addChild(armatureDisplay);          armatureDisplay.x = 200;      armatureDisplay.y = 300;      armatureDisplay.scaleX = 0.5;      armatureDisplay.scaleY = 0.5;      dragonBones.WorldClock.clock.add( armature );      armature.animation.gotoAndPlay("Run");      egret.Ticker.getInstance().register(function(frameTime:number){        dragonBones.WorldClock.clock.advanceTime(0.01)    },this);        armature.addEventListener( dragonBones.AnimationEvent.START, this.startPlay,this);    armature.addEventListener( dragonBones.AnimationEvent.LOOP_COMPLETE, this.loop_com,this);    armature.addEventListener( dragonBones.FrameEvent.ANIMATION_FRAME_EVENT, this.frame_event,this);}private startPlay(evt:dragonBones.ArmatureEvent)    {        console.log( "armature 开始播放动画!");    }private loop_com(evt:dragonBones.ArmatureEvent)    {        console.log( "armature 动画播放完一轮完成!");    }private frame_event(evt:dragonBones.FrameEvent)    {        console.log( "armature 播放到了一个关键帧! 帧标签为:",evt.frameLabel);    }


红色部分为已废弃代码,下面绿色为对应修改后的代码:

private createGameScene(): void {

    var dragonbonesData = RES.getRes( "RobotGame_1_json" );
    var textureData = RES.getRes( "texture_json" );
    var texture = RES.getRes( "texture_png" );

    var dragonbonesFactory:dragonBones.EgretFactory = new dragonBones.EgretFactory();
    //dragonbonesFactory为new dragonBones.EgretFactory() 变量,后面需要调用

    dragonbonesFactory.addDragonBonesData(dragonbonesFactory.parseDragonBonesData(dragonbonesData));
    dragonbonesFactory.addTextureAtlas(dragonbonesFactory.parseTextureAtlasData(texture,textureData));  
    var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot"); 

    var armatureDisplay = this.armature.display;
    this.addChild(armatureDisplay);  

    
    armatureDisplay.x = 200;  
    armatureDisplay.y = 300;  
    armatureDisplay.scaleX = 0.5;  
    armatureDisplay.scaleY = 0.5;  

    dragonbonesFactory.clock.add( armature );  
    armature.animation.gotoAndPlay("Run");  

    egret.Ticker.getInstance().register(function(frameTime:number){
        dragonbonesFactory.clock.advanceTime(0.01)
    },this);
    
    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.START, this.startPlay,this);
    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.LOOP_COMPLETE, this.loop_com,this);
    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.FRAME_EVENT, this.frame_event,this);
}

private startPlay(evt:dragonBones.ArmatureEvent)
    {
        console.log( "armature 开始播放动画!");
    }
private loop_com(evt:dragonBones.ArmatureEvent)
    {
        console.log( "armature 动画播放完一轮完成!");
    }
private frame_event(evt:dragonBones.FrameEvent)
    {
        console.log( "armature 播放到了一个关键帧! 帧标签为:",evt.frameLabel);
    }

private createGameScene(): void {    var dragonbonesData = RES.getRes( "RobotGame_1_json" );    var textureData = RES.getRes( "texture_json" );    var texture = RES.getRes( "texture_png" );    var dragonbonesFactory:dragonBones.EgretFactory = new dragonBones.EgretFactory();    //dragonbonesFactory为new dragonBones.EgretFactory() 变量,后面需要调用    dragonbonesFactory.addDragonBonesData(dragonbonesFactory.parseDragonBonesData(dragonbonesData));    dragonbonesFactory.addTextureAtlas(dragonbonesFactory.parseTextureAtlasData(texture,textureData));      var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot");     var armatureDisplay = this.armature.display;    this.addChild(armatureDisplay);          armatureDisplay.x = 200;      armatureDisplay.y = 300;      armatureDisplay.scaleX = 0.5;      armatureDisplay.scaleY = 0.5;      dragonbonesFactory.clock.add( armature );      armature.animation.gotoAndPlay("Run");      egret.Ticker.getInstance().register(function(frameTime:number){        dragonbonesFactory.clock.advanceTime(0.01)    },this);        armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.START, this.startPlay,this);    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.LOOP_COMPLETE, this.loop_com,this);    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.FRAME_EVENT, this.frame_event,this);}private startPlay(evt:dragonBones.ArmatureEvent)    {        console.log( "armature 开始播放动画!");    }private loop_com(evt:dragonBones.ArmatureEvent)    {        console.log( "armature 动画播放完一轮完成!");    }private frame_event(evt:dragonBones.FrameEvent)    {        console.log( "armature 播放到了一个关键帧! 帧标签为:",evt.frameLabel);    }


 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。