cocos2dx-lua 加载和绑定ccbi 中对象

来源:互联网 发布:知乎专栏怎么写 编辑:程序博客网 时间:2024/05/29 17:49

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 则加载代码为

--把ccbi中的菜单项转换成lua中的菜单项对象

local menuItem= proxy:getNode"close","CCMenuItem"

--把转换好的菜单项绑定回调事件

proxy:handleMenuEvent(menuItem,function()  

        print("点击了关闭菜单")

end)  

--其他常用的对象的加载方式  xxx为ccbi中自定义的对象名

--把ccbi中定义的CCLabelTTF转换成 lua中CCLabelTTF 对象

local ttf=tolua.cast(proxy:getNode"xxx","CCLabelTTF") 

--把ccbi中的精灵对象转化成lua的精灵对象

local sprite = tolua.cast(proxy:getNode"xxx","CCSprite")   

--把ccbi中的菜单对象转换成lua中的菜单对象 

local menu= tolua.cast(proxy:getNode"xxx","CCMenu") 

--把ccbi中的菜单项转换成lua中的菜单项对象

local menuItem= proxy:getNode"xxx","CCMenuItem"

--把转换好的菜单项绑定回调事件

proxy:handleMenuEvent(menuItem,function()  

    

end)  

--把ccbi中的九宫格 转换成 lua中的九宫格对象  

local ccsprite9 = proxy:getNode"xxx","CCScale9Sprite"

--把ccbi中的按钮转换成lua中的按钮对象  

local ccontrol = tolua.cast(proxy:getNode"xxx","CCControlButton")  

--给转换好的按钮绑定事件

proxy:handleButtonEvent(ccontrol, function(ccontrol, event)  

        -- 按钮的 事件

end, CCControlEventTouchUpInside)  

0 0
原创粉丝点击