十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
Cocos Creator游戲開發(fā)中經(jīng)常使用到按鈕,特別是大量按鈕的情況,此時使用數(shù)組來管理這些按鈕就顯得更具通用性。我大致走了一下官方的示例,好像沒有發(fā)現(xiàn)有這個小內(nèi)容(或者有,但我卻是沒有找到),于是補(bǔ)充此內(nèi)容如下。
如下圖展示的界面(圖中是我一個小拙例的截圖,尚未成熟,等稍后感覺可以分享后再公開):
注意到,層級管理上,我使用了一個父節(jié)點controlRoot包容了兩個按鈕節(jié)點(實際中可能有許多按鈕)。
代碼( zxzLevelSelect.js)如下:
cc.Class({
extends: cc.Component,
properties: {
but: {
default: [],
type: [cc.Button], // type 同樣寫成數(shù)組,提高代碼可讀性
}
},
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,函數(shù)touchButton(event, customEventData)是我們定義按鈕的handler函數(shù);
2,在此函數(shù)中,我們至少可以使用如上所示的兩種方式在區(qū)別各個按鈕,第一種方式是event.target.name(event.target對應(yīng)相應(yīng)的按鈕組件),而name值正是我們在層次管理器中看到的按鈕的名字;第二種方式是借助于handler函數(shù)中的第二個參數(shù)customEventData,在場景設(shè)計中我分別把這兩個按鈕的customEventData值設(shè)置為0和1(當(dāng)然你可以根據(jù)需要設(shè)置為字符串等更為直觀的名字)。注意到代碼的后半部分使用了注釋,其中正是第二種區(qū)分按鈕的方式。
上述小場景文件名為zxzLevelSelection.fire,我在層級管理的最上層Canvas節(jié)點上關(guān)聯(lián)了上面的腳本 zxzLevelSelect.js,并綁定上面兩個按鈕組件,如下圖所示:
然后,依次選擇兩個按鈕組件,各自關(guān)聯(lián)上對應(yīng)的handler函數(shù),如下圖所示(僅給出一個即可):
請注意:無論多少個按鈕,都要按照上述思路進(jìn)行關(guān)聯(lián)才行。
本文給出Cocos Creator編程中按鈕組件數(shù)組的使用補(bǔ)充,不足處請各位提醒,非常感謝。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。