天天看點

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

cocos creator制作遊戲前端tab欄

制作背景

建立一個單色精靈節點作為背景命名為

bg

size

調為640*1136

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

制作tab欄

建立一個空節點

tab_root

,并為其添加一個

Widget

元件令tab欄自适應向下對齊,若在上方的tab欄同理即可。

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

在tab_root節點下建立一個單色精靈節點作為tab欄的背景,命名為

bk

,并且

size

寬度設定為640,高和位置自行調整至合适參數,如下圖:

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

建立一個空節點

game

作為存放一個tab的資訊節點,位置Position參數自行調節,

size

調節為150*背景高,

game

節點下存放了圖示以及名位元組點

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

重複以上步驟建立出4個tab

坐标tab1(-240,xx), tab2(-80,xx),tab3(80,xx) ,tab4(240,xx)。xx代表自行調節

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

為他們添加一個按鈕元件

Button

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

制作tab欄的内容

建立一個

content_root

空節點,這個負責存放對應tab欄下的節點内容

每一個内容包含一個

top

節點(挂一個

widget

元件使其與上方對齊,用于存放标題資訊)和

list

節點(存放内容資訊[通常用scrollview來存放清單按實際情況而定,list内可以自行加

layout

元件調整])

top内挂有單色節點

bk

作為背景,title為文字資訊

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

制作出4個對應tab欄的節點

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

代碼思路

通過點tab欄的按鈕讓對應的節點的

active

為true,其他為false,隐藏不對應的節點,顯示對應内容。

是以有一個主要制的代碼放到Canvas要取出button以及對應content

編寫代碼Home.js

cc.Class({
    extends: cc.Component,

    properties: {
        tab_button:{
            default:[],
            type:cc.Button,
        },
        tab_content:{
            default:[],
            type:cc.Node,
        }
    },


    onLoad () {

    },

    start () {
        this.on_tab_button_click(null,"0");
    },

    disable_tab:function(index){
        this.tab_button[index].interactable = true; //禁用
        this.tab_content[index].active = false;
    }, 

    enable_tab:function(index){
        this.tab_button[index].interactable = false;
        this.tab_content[index].active = true;
    },


    on_tab_button_click:function(e,index){
        index = parseInt(index);
        for(var i = 0 ; i < this.tab_button.length;i++){
            if(i == index){
                this.enable_tab(i);
            }
            else{
               this.disable_tab(i);
            }
        }
    },

    // update (dt) {},
});

           

将節點拖動到該元件中注意button放到button節點中,content放入content

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

在按鈕之中的CustomEventData中傳入0,1,2,3的數字,其對應你剛剛放入content的元件中的順序

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

檢驗效果

cocos creator制作遊戲前端tab欄及對應功能實作cocos creator制作遊戲前端tab欄代碼思路檢驗效果

為了較好地調試效果,我調整了

list

節點的背景色,制作tab欄以及功能成功。