1. 程式人生 > >cc.Button和Label組件

cc.Button和Label組件

sprite custom length order 對齊 cti 位置 腳本 text組件

cc.Button


1.添加按鈕的方法

直接添加帶Button組件的節點

先創建節點,再添加組件



2.過渡效果

普通狀態, 鼠標滑動到物體上,按下狀態,禁用狀態.

這個就是過渡效果,可以有這幾種方式.

(1)不設置過渡,只響應事件;

(2)顏色過渡.過渡效果中使用顏色,

(3)精靈過渡,使用圖片過渡;




在這裏選擇過渡效果,

技術分享圖片

(1) COLOR顏色過渡

Normal普通狀態

Pressed按下狀態

Hover鼠標懸停狀態

Disabled禁用狀態

Duration 過渡時間,也就是改變狀態的時間

技術分享圖片



(2)SPRITE 使用精靈來過渡

只要把對應的精靈放到對應的地方即可

技術分享圖片


(3)按縮放過渡

第一個是時間

然後是縮放的大小

技術分享圖片



3.Enable Auto Gray Effect

也就是你勾選上的時候

如果你的按鈕是被禁用狀態,他會再內部把這個

精靈渲染成灰色/


技術分享圖片

技術分享圖片




4.按鈕添加響應事件

技術分享圖片

按鈕添加響應事件-->到節點-->代碼組件的響應函數

    //響應函數
    on_button_click: function(){
    console.log("領取成功");
    },

這個代碼組件掛在哪個節點上,就要通過這個節點才能調用響應.
技術分享圖片


選擇代碼組件

技術分享圖片


選擇響應函數

技術分享圖片

技術分享圖片


如果這個函數每次進來要傳遞參數.應該怎麽弄呢?

使用這個進行傳遞,
這個參數是一個字符串

技術分享圖片

    on_button_click: function(e,str){
    //第一個參數是event
    //第二個是闖進來的參數 字符串
    console.log("領取成功");
    console.log(str);
    },








5.在代碼裏面使用cc.Button

(1)首先你要添加或者獲取這個cc.button組件

通過代碼獲取

    //獲取子節點
    var btn_rev = this.node.getChildByName("btn_receive_0");
       //通過這個節點獲取 cc.Button組件
       this.button_rev = btn_rev.getComponent(cc.Button);
       
       
     換一種寫法
    this.button_rev = this.node.getChildByName("btn_receive_0").getComponent(cc.Button);


再代碼裏添加button組件

 this.button_rev = this.node.getChildByName("btn_receive_0").addComponent(cc.Button);



(2)代碼添加響應函數

他有一個響應事件列表,也就是多個響應事件

也就是在clickEvents裏面加入一個元素



技術分享圖片






數組的類型是Component.EventHandler

他有4個屬性

技術分享圖片


    onLoad: function () {
    //獲取子節點
       //通過這個節點獲取 cc.Button組件
       this.button_rev = this.node.getChildByName("btn_receive_0").getComponent(cc.Button);
       console.log(this.button_rev );
       //創建響應handle
       var click_event = new cc.Component.EventHandler;
       //找到目標節點 
       click_event.target = this.node;
       //找到目標組件名 就是這個腳本
       click_event.component = "HelloWorld";
       //找到組件的響應函數
       click_event.handler =  "on_re_button_click";
       //自定義數據 參數 字符串類型
       click_event.customEventData = "hello";
       //添加到響應事件列表
       this.button_rev.clickEvents.push(click_event);
    },
    on_re_button_click: function(e,str){
    console.log("領取成功"+str);
    },


Button響應這個觸摸點擊,所以Button所掛在的節點,

一定要有大小,如果掛再一個大小為0的節點上,按鈕響應不到.



6.主動觸發事件,有時候這個事件是由用戶點擊觸發,有時候系統觸發

比如用戶3分鐘沒有點擊返回主菜單,這時候要系統自動觸發返回就行了.

使用emit 觸發指定 handler 函數,該參數是回調函數的參數值(可不填)。


       //5秒後自動觸發
       this.scheduleOnce(function(){
       //通過代碼觸發響應事件
       //首先獲取觸摸事件列表
       var click_e = this.button_rev.clickEvents;
       //遍歷事件列表
       for(var i =0;i<click_e.length;i++){
       //獲取事件
       var comp_handler = click_e[i];
       //主動觸發
       comp_handler.emit(["","aaa"]);
       }
       
       }.bind(this),5);







cc.Label


1.String 要顯示的內容

技術分享圖片


2.文字水平對齊模式

左對齊

技術分享圖片

居中

技術分享圖片

右邊



3.Line Height 文字行高,以point為單位

也就是以行的高度,不管你字體大小.

技術分享圖片


這個node的高度是行數*(乘以)行高 來計算的

技術分享圖片







4.Vertical Align 文字垂直對齊模式

TOP在一行的最頂上 對齊

技術分享圖片


CENTER 中間

技術分享圖片


BOTTOM底邊

技術分享圖片





6.FontSize 字體大小尺寸



7.Overflow 文字排版模式

如果文字排版超出範圍怎麽辦?

(1)CLAMP 範圍之外的文字被裁剪掉

技術分享圖片

(2)SHRINK 自動根據點擊約束框縮小文字

技術分享圖片

(3)RESIZE 根據文本內容更新節點height屬性

類似自動換行





8.是否默認使用系統字體,Use SystemFont

Font Family:字體家族,你要使用系統的哪種字庫

如果你不用系統字體,那麽他就不顯示.




9.Font 自定義字庫, 使用自己的字體資源

自定義字體有兩種:

(1)準備好字體文件.ttf矢量字庫

使用矢量字體,優點:靈活方便,缺點:字庫文件占用資源,



(2)使用字體制作工具生成的位圖,使用位圖字體;

fnt是這個位圖字庫 描述文件:有對應的圖片的位置、大小偏移

優點:速度快,文件小, 缺點: 支持的字符個數是有限的;


技術分享圖片

只有裏面元素有的圖片才能顯示出來.

技術分享圖片



總結:

上面兩種自定義ttf字庫和位圖字庫,都是用來個性化我們的字體的.

自定義ttf字庫,字符不受限制,你這個字庫裏有多少個字符,都會支持

,靈活, 但是占用空間比較大

位圖字庫 他的字符個數有限的圖片裏有的才有,他比較省空間



10.錨點 Label的錨點 是個重要的屬性

如果你的錨點是中心也就是0.5那麽他添加字體往兩邊增加、

技術分享圖片

如果錨點為0,就是往右邊增加

技術分享圖片





11.代碼中使用cc.Label

獲取組件兩種辦法,還是一樣

(1)就是通過編輯器來指定

bmp_font:{

default: null,

type: cc.Label,

}

(2)通過代碼來獲取

    var zLabe = this.node.getChildByName("my_labell");
    //獲取label
    this.bmp_font = zLabe.getComponent(cc.Label);
    //設置內容
    this.bmp_font.string = "hhh111";

技術分享圖片







12.RichText組件

(1)添加富文本組件

(2)設置富文本的字符內容;

<color=#0fffff>text</color>指定文字的顏色

<img src='cow1_1/'>img標簽,文本插入圖片,圖片要在指定的圖集裏

u:給文本加下劃線,i:用斜體來渲染,b:用粗體來渲染.

size:指定字體渲染大小,大小值必須是一個整數<size=30>aa mm</size>

outline:設置文本的描邊顏色和描邊寬度<outline color=red width=4>

A label with</outline>


如果你要放圖片 這裏放圖集Image Atlas

也就是你用的圖片都會在這裏.

技術分享圖片


技術分享圖片


這樣就能顯示圖片了

技術分享圖片



cc.Button和Label組件