--[[node
cocostudio綁定json
@param widget 從json解析出來的uiwidgetui
@param scene 要綁定到的對象(注,是對象,不是類)lua
用法:spa
self.pWidget = GUIReader:shareReader():widgetFromJsonFile("res/display/display.json").net
bind(self.pWidget, self)對象
執行綁定以後,可使用self.btnName來訪問有name屬性的對象(不知道是否須要tolua.cast爲目標類型)遞歸
在被綁定到的對象的類中,若是有對應的click方法,則會自動綁定例如MainScene:btnNameClick事件
]]get
function bind(widget, scene)
local node = nil
CCARRAY_FOREACH(widget:getChildren(), node)
{
if (node:getName() ~= nil and node:getName() ~= "") then
scene[node:getName()] = node --字段綁定,只要有name的就綁
if type(scene[node:getName() .. "Click"]) == "function" then
node:addTouchEventListener(handler(scene, scene[node:getName() .. "Click"]) --事件綁定,約定事件名爲按鈕name加上Click
end
end
bind(node, scene) --遞歸綁定
}
end