更新日志:
11.13 目前getChild有一个错误,无法返回LabelAtlas的控件,修改UILabelAltas的源码函数
const char* UILabelAtlas::getDescription() const
{
return "LabelAtlase"; //去掉后面那个e
}
或者直接修改ccs的lua库,CCSLayerExtend里的local widget_name,["LabelAtlase"] = "UILabelAtlas", --加上e
前段时间,无意有人提到能否把前面gui的lua绑定封装到quick里,然后就去看了下quick.觉得真心强大.就研究了下quick,然后顺利完成了ccs的gui库的封装.继承了quick的风格.
很不幸的是,本来准备将代码pull到quick的,但是quick作者在develop分支中去掉了对ccs的支持,并且不打算支持ccs.加之最近项目启动了没有多少时间来搞一套quick的,就先把现有的一些东西分享出来吧.
封装其实很简单,就是在原来基础上扩展了一点点的内容.
注意:本封装不支持quick,即时你将lua拷入quick,也使用不了.
现有功能.
1.读取一个ui到lua中
local layer = ccs.newLayer("testUI/testUI.json")
2.获得一个layer中的控件.比如UIButton
local button = layer:getButton("test_button")
或者
local button = layer:getChild("test_button")
getChild会自动返回child的类型
3.可以将一个ui中的所有checkbox分组
function CCSLayerExtend:insterGroup(groupId,...)
...
end
组checkbox回调时调用
function CCSLayerExtend:GroupSelected(groupId,checkbox)
...
end
设置默认开启的checkbox
function CCSLayerExtend:GroupDefault(groupId,checkbox)
...
end
使用本代码前,先绑定ccs到lua,http://blog.youkuaiyun.com/rrobin/article/details/12101349