zoukankan      html  css  js  c++  java
  • cocos动态设定button的customEventData

    问题

    有时候需要多种提示共用同一个弹窗,并且点击“确定”按钮,响应不同的事件,这时候就用到了动态设定该按钮的customEventData。

    onLoad: function () {
        var clickEventHandler = new cc.Component.EventHandler();
        clickEventHandler.target = this.node; //这个node节点是你的事件处理代码组件所属的节点
        clickEventHandler.component = "MyComponent";//这个是代码文件名
        clickEventHandler.handler = "callback";
        clickEventHandler.customEventData = "foobar";
    
        var button = this.node.getComponent(cc.Button);
        button.clickEvents.push(clickEventHandler);
    },
    
    callback: function (event, customEventData) {
        //这里 event 是一个 Touch Event 对象,你可以通过 event.target 取到事件的发送节点
        var node = event.target;
        var button = node.getComponent(cc.Button);
        //这里的 customEventData 参数就等于你之前设置的 "foobar"
        console.log("para is: ",customEventData);
    }
    

    如果只设定按钮的customEventData,只需要添加以下代码即可

    cc.find('Canvas/itemsMask/tips_left_confirm').getComponent(cc.Button).clickEvents[0].customEventData = 'mask';
    

    这样就可以根据customEventData不同来响应不同的事件了。

  • 相关阅读:
    以正确的方式开源 Python 项目
    一个备胎的自我修养
    关于我们 | 读书马上
    基于libevent, libuv和android Looper不断演进socket编程
    libuv 与 libev 的对比
    OCaml Language Sucks
    Practical Common Lisp
    learning
    WebApi系列~QQ互联的引入(QConnectSDK)
    知方可补不足~用xsl来修饰xml
  • 原文地址:https://www.cnblogs.com/ZerlinM/p/14582837.html
Copyright © 2011-2022 走看看