美文网首页
【egret学习之路】UI加载和Spine转Dragbones的

【egret学习之路】UI加载和Spine转Dragbones的

作者: 伏波Rinnsio1xy | 来源:发表于2018-07-03 17:39 被阅读120次

    一、UI加载、以及按钮事件

    class testSkin extends eui.Component {
        constructor() {
            super();
            this.addEventListener(eui.UIEvent.COMPLETE,this.onComplete,this);
            this.skinName = "resource/eui_skins/testui.exml";
        }
        protected createChildren() {
            super.createChildren();
            console.log("createChildren")
        }
    
        private onComplete():void{
            console.log("onCompletSe");
            // 返回逻辑
            this.btnReturn.addEventListener( egret.TouchEvent.TOUCH_TAP, ()=> {
                console.log("this is btn return")
            }, this );
    
            // 返回逻辑
            this.btnGo.addEventListener( egret.TouchEvent.TOUCH_TAP, ()=> {
                console.log("this is btn go")
            }, this );
        }
          // 这里的按钮对象需要和ui文件标记一样(感觉不错的设计),这样加载后变量自动被赋值
          private btnReturn:eui.Button;
          private btnGo:eui.Button;
    }
    // 加载方式
     private _testSkin:testSkin;
    
     this._testSkin = new testSkin;
     this.addChild(this._testSkin)
    
    

    二、Spine转Dragbones:资源的加载路径有所不同,egert是使用"_"扩展名的方式作为key加载资源的,这里我原有的资源是spine,需要导入到龙骨工具然后导出对应的格式即可

     var timer:egret.Timer = new egret.Timer(20, 0);
            timer.addEventListener(egret.TimerEvent.TIMER, this.onTimeUpdate, this);
            this.addEventListener(egret.TimerEvent.TIMER_COMPLETE, this.onTimeComplete, this);
            timer.start();  
    
            var dragonbonesData = RES.getRes("skeleton_1_ske_json");
            var textureData = RES.getRes("skeleton_1_tex_json");
            var texture = RES.getRes("skeleton_1_tex_png");
            
            var dragonbonesFactory: dragonBones.EgretFactory = new dragonBones.EgretFactory();
            dragonbonesFactory.addDragonBonesData(dragonBones.DataParser.parseDragonBonesData(dragonbonesData));
            dragonbonesFactory.addTextureAtlas(new dragonBones.EgretTextureAtlas(texture, textureData));
            this.armature = dragonbonesFactory.buildArmature("armatureName");
            this.addChild(this.armature.getDisplay());
    
            this.armature.display.x = this.stage.stageWidth * 0.5;
            this.armature.display.y = this.stage.stageHeight - 10;
            /**
             * 开启大时钟这步很关键
             * */
            dragonBones.WorldClock.clock.add(this.armature);
    
       private onTimeUpdate():void{
             dragonBones.WorldClock.clock.advanceTime(0.02)
        }
    
        private onTimeComplete():void{
             console.log("update finish")
        }
    
    

    三、滑动屏幕,物件产生移动

            // 龙舟
            this.boat = this.createBitmapByName("boat_png");
            this.boat.x = this.stage.stageWidth * 0.5
            this.boat.y = this.stage.stage.height - 200
             
            // 触摸界面滑动龙舟
            var offsetX:number;
            var offsetY:number;
            var boatBeginX:number;
            function startMove(e:egret.TouchEvent):void{
                offsetX = e.stageX
                boatBeginX = this.boat.x
                this.stage.addEventListener(egret.TouchEvent.TOUCH_MOVE, onMove, this);
            }
            function onMove(e:egret.TouchEvent):void{
                var offset1 =  e.stageX - offsetX
                this.boat.x = boatBeginX + offset1
            }
            function stopEnd(e:egret.TouchEvent):void{
                 this.stager.removeEventListener(egret.TouchEvent.TOUCH_MOVE, onMove, this);
            }
            this.stage.addEventListener(egret.TouchEvent.TOUCH_BEGIN, startMove, this);
    
            this.addChild(this.boat);
    

    相关文章

      网友评论

          本文标题:【egret学习之路】UI加载和Spine转Dragbones的

          本文链接:https://www.haomeiwen.com/subject/olejuftx.html