--[[
cocostudio绑定
@param widget 从json解析出来的uiwidget
@param scene 要绑定到的对象(注,是对象,不是类)
用法:
self.pWidget = GUIReader:shareReader():widgetFromJsonFile("res/display/display.json")
bind(self.pWidget,self)
执行绑定之后,可以使用self.btnName来访问有name属性的对象(不知道是否需要tolua.cast为目标类型)
在被绑定到的对象的类中,如果有对应的click方法,则会自动绑定例如MainScene:btnNameClick
]]
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
原文链接:https://www.f2er.com/cocos2dx/346783.html