cocos2d-x + lua獲取CocoStudio中導入json文件中控件的兩種方法:

1.C++獲取:

方法一:
  auto myLayout = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("testUI.json");  
    this->addChild(myLayout);  
    Button* loginBtn = (Button*)(myLayout->getChildByName("login"));  
方法二:
Button* testBtn = (Button*)(Helper::seekWidgetByName(myLayout,"TestButton"));   
  1. lua獲取
方法一:
local myLayout  =          ccs.GUIReader:getInstance():widgetFromJsonFile("testUI.json.json")
self:addChild(myLayout)
local loginBtn = myLayout->getChildByName("login")
(不知道這樣對不對,日後再來驗證)
方法二:
local testBtn = ccui.Helper:seekWidgetByName(myLayout,"TestButton")

區別:
方法一: getChildByName是按照數結構進行查找,只能查找父對象下面的子對象,而不能跨級查找。
方法二: Helper::seekWidgetByName可以在整個對象結構中直接查找。

(有時候我們需要獲取某個節點的子節點的子節點、甚至子節點的子節點的子節點、甚至…
這樣的需求是很常見的,而一層一層去get未免太繁瑣。這時方法二是一個很好的選擇)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章