1. 程式人生 > >Cocos Creator 系統學習筆記(九)cc.Button的使用

Cocos Creator 系統學習筆記(九)cc.Button的使用

 1 //cc.Button元件使用詳解
 2 /*1:新增按鈕的方法
 3     (1)直接建立帶Button元件的節點,可以;
 4     (2) 先建立節點,再新增元件;
 5     2:按鈕元件, 按鈕是遊戲中最常用的元件, 點選然後響應事件;
 6     3: 按鈕的過渡效果:
 7     過渡Transition: 普通狀態, 滑鼠滑動到物體上, 按下狀態, 禁用狀態
 8     (1)沒有過渡,只有響應事件;
 9     (2)顏色過渡, 過渡效果中使用顏色;
10     (3)精靈過渡,使用圖片過渡;
11     (4)縮放過渡, 選項,在disable的時候是否置灰;
12 4: 按鈕禁用; 13 5: 按鈕新增響應事件 --> 節點-->元件 --> 程式碼的函式; 14 6: 按鈕傳遞自定義引數; ---> 字串物件; 15 7: Button響應這個觸控點選,所以Button所掛的這個節點,一定要有大小,如果你向大小(0, 0)的節點上,掛一個Button,這個是無法響應點選事件; 16 17 */ 18 //例子 19 //evt 本次觸控的觸控事件 20 //customData 是String型別 若要是需要呼叫的是int型別,那麼需要int時要進行轉換 21 on_button_click(evt,customData){
22 customData=parseInt(customData); 23 console.log("on_button_click",customData); 24 }, 25 /*程式碼使用cc.Button 26 1: 程式碼新增/獲取cc.Button元件; 27 28 2: 程式碼裡面新增按鈕的響應事件; 29 3: 程式碼觸發按鈕指定的回掉函式; 30 4: Component.EventHandler 31 var eventHandler = new cc.Component.EventHandler(); 32
eventHandler.target = newTarget; 33 eventHandler.component = "MainMenu"; 34 eventHandler.handler = "OnClick"; 35 eventHandler.customEventData = "my data"; 36 eventHandler.emit(["param1", "param2", ....]); 37 38 */ 39 properities:{ 40 //在編輯器內繫結 41 button_sym:{ 42 type:cc.Button, 43 default:null, 44 }, 45 }, 46 onLoad(){ 47 //獲取節點獲取元件 48 this.start_button=this.node.getChildByName("aaa_button").getComponent(cc.Button); 49 //不建議使用getChildByName,可以在指令碼properities內宣告節點,在呼叫的時候設定對應的節點 50 //使用節點名字進行查詢消耗效能之外,一旦節點名字改變還需要進行從新配置 51 52 //程式碼內新增響應函式 53 // 新增響應事件 --> 節點-->元件 --> 程式碼的函式 三個部分 54 var click_event=new cc.Component.EventHandler(); 55 click_event.target= this.node; 56 click_event.component = "game_scene";//元件 57 click_event.handler = "on_button_click_test";//字串物件 58 click_event.customData = "test button"; 59 60 //以上兩種方法都是可行的 61 //1 62 this.test_button.clickEvents=[click_event];//可新增多個事件 63 //2 64 this.test_button.clickEvents.push(click_event); 65 }, 66 on_button_click_test(evt,customData){ 67 console.log("on_button_click_test",customData); 68 }, 69 //程式碼出發按鈕的響應事件 70 this.scheduleOnce(function(){ 71 //.... 72 //在程式碼裡觸發按鈕的響應函式 73 clickEvents[x].emit("","引數"); 74 }.bind(this),3);