Cocos Creator中按鈕組件數組的使用
阿新 • • 發佈:2018-03-20
Cocos Creator 按鈕 數組Cocos Creator遊戲開發中經常使用到按鈕,特別是大量按鈕的情況,此時使用數組來管理這些按鈕就顯得更具通用性。我大致走了一下官方的示例,好像沒有發現有這個小內容(或者有,但我卻是沒有找到),於是補充此內容如下。
典型問題預覽
如下圖展示的界面(圖中是我一個小拙例的截圖,尚未成熟,等稍後感覺可以分享後再公開):
註意到,層級管理上,我使用了一個父節點controlRoot包容了兩個按鈕節點(實際中可能有許多按鈕)。
創建操作腳本組件
代碼( zxzLevelSelect.js)如下:
cc.Class({ extends: cc.Component, properties: { but: { default: [], type: [cc.Button], // type 同樣寫成數組,提高代碼可讀性 } }, touchButton(event, customEventData){ var node = event.target; switch(node.name){ case ‘btnStart‘: { cc.director.loadScene(‘zxzBallScene‘); } break; case ‘btnBack‘: { cc.director.loadScene(‘zxzWelcome‘); } break; } // switch(customEventData){ // // switch(button.name){ // case ‘0‘: // { // cc.director.loadScene(‘zxzBallScene‘); // } // break; // case ‘1‘: // { // cc.director.loadScene(‘zxzWelcome‘); // } // break; // } } });
代碼中請註意如下幾點:
1,函數touchButton(event, customEventData)是我們定義按鈕的handler函數;
2,在此函數中,我們至少可以使用如上所示的兩種方式在區別各個按鈕,第一種方式是event.target.name(event.target對應相應的按鈕組件),而name值正是我們在層次管理器中看到的按鈕的名字;第二種方式是借助於handler函數中的第二個參數customEventData,在場景設計中我分別把這兩個按鈕的customEventData值設置為0和1(當然你可以根據需要設置為字符串等更為直觀的名字)。註意到代碼的後半部分使用了註釋,其中正是第二種區分按鈕的方式。
關聯腳本組件及設置按鈕handler函數
上述小場景文件名為zxzLevelSelection.fire,我在層級管理的最上層Canvas節點上關聯了上面的腳本 zxzLevelSelect.js,並綁定上面兩個按鈕組件,如下圖所示:
然後,依次選擇兩個按鈕組件,各自關聯上對應的handler函數,如下圖所示(僅給出一個即可):
請註意:無論多少個按鈕,都要按照上述思路進行關聯才行。
小結
本文給出Cocos Creator編程中按鈕組件數組的使用補充,不足處請各位提醒,非常感謝。
Cocos Creator中按鈕組件數組的使用