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

前端之家收集整理的这篇文章主要介绍了Cocos2d-js中的简易MVC框架(五)MVC框架的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先定义第一个场景:@H_404_3@

<code lang="javascript">@H_404_3@

login.LoginScene = game.IScene.extend({@H_404_3@

ctor:function (){@H_404_3@

this._super();@H_404_3@

}@H_404_3@

});@H_404_3@

</code>@H_404_3@

以及该场景的中介者:@H_404_3@

login.LoginSceneMediator = game.SceneMediator.extend({@H_404_3@

ctor:function (view) {@H_404_3@

this._super(view);@H_404_3@

然后创建Layer层来显示UI@H_404_3@

login.LoginLayer = game.IView.extend({@H_404_3@

ctor:function () {@H_404_3@

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

return true;@H_404_3@

然后创建对应的Mediator@H_404_3@

login.LoginLayerMediator = game.LayerMediator.extend({@H_404_3@

},@H_404_3@

init:function () {@H_404_3@

//注册消息监听@H_404_3@

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

show:function (parent) {@H_404_3@

//添加UI到场景上@H_404_3@

var self = this;@H_404_3@

self._super(parent);@H_404_3@

parent.addChild(this.currView);@H_404_3@

freshen:function (obj){@H_404_3@

//上层UI关闭调用@H_404_3@

destroy:function () {@H_404_3@

//删除注册的监听@H_404_3@

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

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

然后在游戏的最开始调用@H_404_3@

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

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

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

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

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

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

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

猜你在找的Cocos2d-x相关文章