Cocos2d-js中的简易MVC框架(五)MVC框架的使用
首先定义第一个场景: <code lang="javascript"> login.LoginScene = game.IScene.extend({ ctor:function (){ this._super(); } }); </code> 以及该场景的中介者: login.LoginSceneMediator = game.SceneMediator.extend({ ctor:function (view) { this._super(view); 然后创建Layer层来显示UI: login.LoginLayer = game.IView.extend({ ctor:function () { //TODO 实现显示内容。。。 return true; 然后创建对应的Mediator: login.LoginLayerMediator = game.LayerMediator.extend({ }, 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); //其他销毁都可以放在这里 然后在游戏的最开始调用: 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); 创建刚刚实现的场景及Layer,然后传入框架的初始化方法里。 game.Frameworks.init的三个参数分别为:游戏的默认宽高、Log模式、第一个场景。 然后再创建其他场景时就继承IScene来实现就可以了,如果不需要多个场景就继承IView来实现,调用Mediator中的showLayer或者pushLayer来显示就可以了。在这套MVC框架中,Mediator可以注册监听,而View和Model都可以发送send消息来触发Mediator中的注册监听。文章后面附有源码,源码里有小的工程demo。 源码地址:https://github.com/yue19870813/cocos2d-js-mvc.git/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |