之前提到过一个场景对应一个canvas根节点,在一个场景的节点上已经提前把该场景能适用的界面提前拼到canvas上并且绑定一个功能,组件了。
有些界面有些公用的按钮,回调事件等等,这些都可以适用公共的借口进行添加,调用。
比如帮助和消息界面,这两个界面就是显示一些内容,没有什么可操作性的东西,只有一个返回按钮事件,
这时候就可以把这个返回按钮事件绑定回调函数的功能提取出来,达到对于多个具有类似功能的按钮调用公共的借口,减少代码的冗余量,缺点就是代码会变得抽象。
下面如何添加两个返回按钮的功能呢?
1.首先要知道返回键的功能就是把这个界面的active设置为false;
2.在初始化这两个界面的根节点的时候,要给这两个界面绑定这个公共的接口回调添加方法。
3.还有一点要明确得是在初始化active的时候是不会调用绑定的js类的onLoad();方法,这个方法在每次登录游戏的按钮功能时只会初始化一次。
this.helpWin.addComponent("OnBack");
this.xiaoxiWin.addComponent("OnBack");
类也可以当一个组件添加到对应的子界面上。所以在这两个界面点击返回的时候,调用的方法是在OnBack.js这个类里面的!!
OnBack就是返回按钮的公共方法类。
onLoad: function () {
var btn = this.node.getChildByName("btn_back");
cc.vv.utils.addClickEvent(btn,this.node,"OnBack","onBtnClicked");
},
onBtnClicked:function(event){
if(event.target.name == "btn_back"){
this.node.active = false;
}
}
这时候又看到了cc.vv.utils.addClickEvent();这个方法了。这也是公共的方法。
addClickEvent:function(node,target,component,handler){
console.log(component + ":" + handler);
var eventHandler = new cc.Component.EventHandler();
eventHandler.target = target;
eventHandler.component = component;
eventHandler.handler = handler;
var clickEvents = node.getComponent(cc.Button).clickEvents;
clickEvents.push(eventHandler);
},
添加公共按钮的回调事件的方法!!!