cocostudio脚本绑定

--[[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

相关文章
相关标签/搜索