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

相關文章
相關標籤/搜索