在lua中封装ccs的gui库,未完

这篇博客记录了在Lua中封装CCS GUI库的过程,包括修复getChild返回LabelAtlas控件的错误,以及对quick框架的研究。尽管原本计划将代码贡献给quick,但由于quick作者放弃了对CCS的支持,所以作者决定分享现有功能。目前的封装支持读取UI到Lua,获取Layer中的控件,以及Checkbox分组,但不适用于quick。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更新日志:

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的framework代码

使用本代码前,先绑定ccs到lua,http://blog.youkuaiyun.com/rrobin/article/details/12101349

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值