cocosbuilder 中的设置
在cocosbuilder中 找到需要绑定的CCMenuItemImage
把code connections 中 设置 为 owner var 并填写自定义对象名
设置一个CCMenuItemImage 叫 close
CCLabelTTF
CCScale9Sprite
等其他对象类似 选owner var 并设置 自定义对象名
也可以通过设置tag 可以在lua中通过tag 读取对象
在lua中加载ccbi 并加载指定ccbi中指定的对象进行操作
lua中的代码
加载ccbi方式:
proxy= LuaProxy:create() --使用luaproxy 库 新建一个proxy对象
local n = proxy:readCCBFromFile("xxx.ccbi") -- 加载你设置的ccbi文件
local l = tolua.cast(n,"CCLayer") -- 把ccbi转换对cclayer对象
加载此ccbi中各种对象的 方式:
加载各种对象中xxx 指的时 ccbi中其对象的code connections 中 设置 为 owner var 并在后填写的相应对象名称
上图中CCMenuItemImage 叫 close 则加载代码为
localmenuItem=proxy:getNode"close","CCMenuItem"
--把转换好的菜单项绑定回调事件
proxy:handleMenuEvent(menuItem,function()
end)
--其他常用的对象的加载方式 xxx为ccbi中自定义的对象名
--把ccbi中定义的CCLabelTTF转换成 lua中CCLabelTTF 对象
local ttf=tolua.cast(proxy:getNode"xxx","CCLabelTTF")
--把ccbi中的精灵对象转化成lua的精灵对象
localsprite=tolua.cast(proxy:getNode"xxx","CCSprite")
localmenu=tolua.cast(proxy:getNode"xxx","CCMenu")
localmenuItem=proxy:getNode"xxx",function()
end)
--把ccbi中的九宫格 转换成 lua中的九宫格对象
localccsprite9=proxy:getNode"xxx","CCScale9Sprite"
--把ccbi中的按钮转换成lua中的按钮对象
localccontrol =tolua.cast(proxy:getNode"xxx","CCControlButton")
--给转换好的按钮绑定事件
proxy:handleButtonEvent(ccontrol,function(ccontrol,event)
-- 按钮的 事件
end,CCControlEventTouchUpInside)