Cocos2d-js中的简易MVC框架(五)MVC框架的使用

首先定义第一个场景:

<code lang="javascript">

login.LoginScene = game.IScene.extend({

    ctor:function (){

        this._super();

    }

});

</code>

以及该场景的中介者:

<code lang="javascript">

login.LoginSceneMediator = game.SceneMediator.extend({

    ctor:function (view) {

        this._super(view);

    }

});

</code>

然后创建Layer层来显示UI

<code lang="javascript">

login.LoginLayer = game.IView.extend({

    ctor:function () {

        //TODO 实现显示内容。。。

        return true;

    }

});

</code>

然后创建对应的Mediator

<code lang="javascript">

login.LoginLayerMediator = game.LayerMediator.extend({

    ctor:function (view) {    

        this._super(view);

    },

    init:function () {

        //注册消息监听

        this.subscrib(common.NotifyType.LOGIN_EVENT, this.btnTouchCallBack, this);

    },

    show:function (parent) {

        //添加UI到场景上

        var self = this;

        self._super(parent);

        parent.addChild(this.currView);

    },

    freshen:function (obj){

        //上层UI关闭时调用

    },

    destroy:function () {

        //删除注册的监听

        this.unsubscrib(common.NotifyType.LOGIN_EVENT, this.btnTouchCallBack);

        //其他销毁都可以放在这里

    }

});

</code>

然后在游戏的最开始调用:

<code lang="javascript">

var loginSceneMediator = new login.LoginSceneMediator(new login.LoginScene());

loginSceneMediator.rootLayer(new login.LoginLayerMediator(new login.LoginLayer()));

game.Frameworks.init({width:1136, height:640}, "DEBUG", loginSceneMediator);

</code>

      创建刚刚实现的场景及Layer,然后传入框架的初始化方法里。

      game.Frameworks.init的三个参数分别为:游戏的默认宽高、Log模式、第一个场景。

      然后再创建其他场景时就继承IScene来实现就可以了,如果不需要多个场景就继承IView来实现,调用Mediator中的showLayer或者pushLayer来显示就可以了。在这套MVC框架中,Mediator可以注册监听,而ViewModel都可以发送send消息来触发Mediator中的注册监听。文章后面附有源码,源码里有小的工程demo

源码地址:https://github.com/yue19870813/cocos2d-js-mvc.git/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值