cocos creator学习笔记2017.2.10(二)

来源:互联网 发布:矩阵的谱分解 编辑:程序博客网 时间:2024/06/14 16:28

之前提到过一个场景对应一个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);
    },

添加公共按钮的回调事件的方法!!!



1 0
原创粉丝点击