cocos2dx3.17的csb文件使用方法
生活随笔
收集整理的這篇文章主要介紹了
cocos2dx3.17的csb文件使用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
cocos2dx3.17的csb文件使用方法
一、手寫代碼加載csb文件,并獲取控件
--加載csb場景文件,并將場景添加到節點中。local node = cc.CSLoader:createNode("MenuScene.csb")self:addChild(node)--獲取場景中的根節點(場景的跟節點一般是容器)local rootLayout = node:getChildByName("Panel_2")--強制轉換,目前還沒搞懂為啥要強制轉換,可有可無,測試不寫這串代碼,一樣可以獲取到它的子節點。-- local rootNode = tolua.cast(root, "ccui.Widget")--獲取控件(按鈕 復選框 圖片 文本 進度條 滑動條 出入框等)local button =rootLayout:getChildByName("Button_2")--給控件添加事件(不同控件,他的事件類型不同,使用的方法也就不同,),下面是給按鈕添加點擊事件button:addClickEventListener(function(sender,eventType) print("點擊了開始按鈕")end)- 控件的通用事件
一般想封裝控件的通用事件的話,可以通過addTouchEventListener(sender,eventType)來添加事件,下面示例:
二、通過mvc ViewBase加載csb文件
ViewBase是系統給我們封裝好了的一個類,該類主要作用是加載界面相關的操作。如果我們想使用這種方式獲取控件實例或者給控件添加事件的話,則需要修改ViewBase類的ViewBase:createResourceBinding(binding)f方法,因為他原生目前不支持控件根節點是容器,而我們一般會用容器包裹控件,所以如果使用RESOURCE_BINDING,并且你的控件根節點是容器的話,則需要手動修改該方法。在第三標題我們會講怎么修改。使用示例如下:
local MainScene = class("MainScene",cc.load("mvc").ViewBase)MainScene.RESOURCE_FILENAME="MenuScene.csb"MainScene.RESOURCE_BINDING = {["Button_2"] = {["varname"] = "bn_StartGame", ["events"] = { {event = "touch" , method ="onBack" }} }} funcation MainScene:ctor()self.bn_StartGame:addClickEventListener(function(sender,eventType)print("點擊了開始按鈕")end)endfuncation MainScene:onBack()print("觸摸了")endreturn MainScene1、MainScene.RESOURCE_FILENAME=”MenuScene.csb”
這個變量是設置場景的csb文件名稱,讀取時在ViewBase類中讀取的
下面會講一下ViewBase類怎么讀取的。
2、MainScene.RESOURCE_FILENAME
這個變量是設置綁定控件,獲取控件的實例
MainScene.RESOURCE_BINDING = {["Button_2"] = {["varname"] = "bn_StartGame", ["events"] = { {event = "touch" , method ="onBack" }} }} 使用方式模板(兩種方式): MainScene.RESOURCE_BINDING = {--不添加事件["cocos控件名"] = {["varname"] = "引用變量名" } --添加事件["cocos控件名"] = {["varname"] = "引用變量名",["events"]={{["event"]="事件類型(原生現在支持一種)",["method"]="回調函數"},...}} }三、ViewBase類源碼講解
- 源碼示例:
- 修改createResourceBinding方法,達到可以使用RESOURCE_BINDING來綁定控件事件的目的(修復原生方法不能綁定使用容器包裹的控件的問題。)
總結
以上是生活随笔為你收集整理的cocos2dx3.17的csb文件使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebService--CXF与Spri
- 下一篇: metro样式开机启动菜单_如何在Win