Skip to content

扩展了 egret 引擎,增加了场景切换,数据绑定以及依赖注入对象的实现

License

Notifications You must be signed in to change notification settings

kokokele/egretx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

00b6315 · Jun 27, 2017

History

33 Commits
Jan 19, 2017
Jun 27, 2017
Feb 21, 2017
Feb 21, 2017
Feb 10, 2017
Jun 27, 2017
Feb 6, 2017
Feb 21, 2017
Feb 8, 2017
Feb 10, 2017
Feb 21, 2017
Jan 19, 2017
Feb 6, 2017
Feb 21, 2017
Jan 19, 2017

Repository files navigation

简介

包括:数据绑定,事件机制,场景切换,工具类。

使用说明

  • 入口文件:

main.ts 增加启动代码如下

private createScene(){
        if(this.isThemeLoadEnd && this.isResourceLoadEnd){

            //启动代码
            bg.App.init(this); 
            bg.App.pushScene(AppScene); //AppScene是自定义主场景类
        }
    }
  • 场景切换

直接使用 bg.App操作。

        /**
         * 显示场景
         */
        public pushScene(sceneClass:any)

        /**
         * 将场景在最外层展示
         */
        public pushSceneToRoot(sceneName:string) 

        /**
         * 移除顶部场景
         */
        public popScene()
  • 动作 Action 主要用于场景切换,加载数据等

如下代码:

class GameAction extends bg.Action {

   
   
   protected run(){
       bg.App.pushScene(ExampleView2);
   }
    
}

//将 GameAction加入到 Action cache 中
bg.Action.add(GameAction);

执行 action :

bg.Action.do(GetDataAction);

数据绑定

class AppModel {

    
    //监听数据 score,参数为 score 默认值
    @bg.observable(0)
    score:number;

}

//将 AppModel 加入到 Model cache 中,用于依赖注入
bg.Model.add(AppModel);

使用数据:

class AppScene extends bg.Scene {

    public addScore:eui.Button;
    public changeStage:eui.Button;
    public score:eui.Label;
    public getDataBtn:eui.Button;


    // 依赖注入 AppModel
    @bg.inject(AppModel)
    appM:AppModel;

    constructor() {
        super();
        this.skinName = 'Example';
        
        //监听数据改变
        this.on('AppModel.score', (e) => {
            this.score.text = e.obj + '';
        })

        this.addScore.addEventListener(egret.TouchEvent.TOUCH_TAP, (e) => {
            //更改 AppModel 数据
            this.appM.score += 1;            
        }, this);

        this.changeStage.addEventListener(egret.TouchEvent.TOUCH_TAP, (e) => {
            bg.Action.do(GameAction);
        }, this);

        this.getDataBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, (e) => {
            bg.Action.do(GetDataAction);
        }, this)
    }


    protected onAddStage() {
        this.on('AppModel.data', (e) => {
            console.log("AppScene onAdd:", e.obj);
            
        })
        console.log('ExampleView onAdd--');
        
    }

    protected onRemoveStage() {
        console.log('ExampleView onRemove');
    }
}

组件使用

  • Toast 消息提示

使用如下:

//设置Toast全局文本样式, 只需设置一次
bg.Toast.setTextStyle({size:30, textColor:0xFF00bb});

//设置 Toast 全局背景图片,只需设置一次
bg.Toast.setBg(BGTexture);

this.toastBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, (e) => {
    //调用
    bg.Toast.show('我是 toast');
}, this)

About

扩展了 egret 引擎,增加了场景切换,数据绑定以及依赖注入对象的实现

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published