博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[cocos2dx笔记015]关于cocos2dx Button三种状态说明
阅读量:5929 次
发布时间:2019-06-19

本文共 1009 字,大约阅读时间需要 3 分钟。

经过几天的填坑,最终将现有的项目由cocos2dx 2.2.2移到cocos2dx 3.2,差点放弃3.2了,但在最后一刻,又把坑填平了。
cocos2dx 2.x到3.x是一个巨大的变化,能够算是全然不同。曾经的类名,全是CC开头的,如今所有去掉了。非常多enum都改用enum class了
所以,你知道2.x,对不起,你比小白学习3.x更难。你用2.x的做法用在3.x,那就全是坑了...
言归正传,
2.x的时候,button设置为Disabled的时候,是看不见。3.x的是没有禁用状态的,可是不会响应touch事件。
在cocostudio UI编辑的时候,button是三种状态的(有三个不同状态的图片),但没有对应改变状态的函数
于是,就分析源代码,发现它是在onPressStateChangedToDisabled();更改为禁用状态的图片。再找,是于
在其基类的ui:Widget的setBright和setHighlight有调用这个onPressStateChangedToDisabled,可是setEnabled不过改为了一个成员变化,
所以你在这里设置disabled,就不会有不论什么效果。除了上面两个函数之后,另一个函数setBrightStyle是设置button是普通状态还是高亮状态
以下是BrightStyle的定义
    enum class BrightStyle
    {
        NONE = -1,
        NORMAL,
        HIGHLIGHT
    };
以下是一个包装的禁用启用的函数
//设置button禁用启用状态
inline void SetButtonEnabled(ui::Button * paramButton, bool paramEnabled)
{
if (isNULL(paramButton)) return;
if (paramEnabled)
{
paramButton->setBright(true);
paramButton->setEnabled(true);
paramButton->setTouchEnabled(true);
}
else
{
paramButton->setBright(false);
paramButton->setEnabled(false);
paramButton->setTouchEnabled(false);
}
}

转载地址:http://dnktx.baihongyu.com/

你可能感兴趣的文章
《Kali Linux渗透测试的艺术》—第2章2.2节脆弱性评估与渗透测试
查看>>
《大规模Java平台虚拟化与调优》——2.4 本章小结
查看>>
《Linux 高级程序设计(第三版)》——第2章 Linux下C语言开发工具 2.1 常用编辑工具...
查看>>
《驯服烂代码:在编程操练中悟道》一第1章 刻舟求剑的文档
查看>>
《Core Data应用开发实践指南》一第3章 托管对象模型的迁移
查看>>
《CUDA C编程权威指南》——第3章CUDA执行模型
查看>>
《计算复杂性:现代方法》——1.7 定理1.9的证明:O(TlogT)时间的通用模拟
查看>>
《MATLAB智能算法超级学习手册》一一1.4 线性方程组的求解
查看>>
苹果微软游说从 Unicode 9.0 中移除武器绘文字
查看>>
为什么开源可以提高程序员的编程技能?
查看>>
官宣了!大杀四方的 Master 就是阿尔法狗
查看>>
《CCNP SWITCH 300-115认证考试指南》——1.2节分层网络的设计
查看>>
《Arduino实战》——2.2 获得控制权
查看>>
《.NET程序员面试秘笈》----面试题5 描述sealed修饰符的使用
查看>>
使用 Find 命令来帮你找到那些需要清理的文件
查看>>
《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.8 主机对数据的访问...
查看>>
什么是阿里云数加大数据计算服务MaxCompute?
查看>>
《Docker全攻略》书评
查看>>
SQL 多条件查询去掉影响效率的where 1=1
查看>>
android universal image loader 缓冲原理详解
查看>>