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不同來響應不同的事件了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM