[cocos2dx笔记015]关于cocos2dx Button三种状态说明
2014-11-13 18:17
357 查看
经过几天的填坑,最终将现有的项目由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);
}
}
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);
}
}
相关文章推荐
- [cocos2dx笔记015]关于cocos2dx Button三种状态说明
- 关于button按钮响应的三种写法和ImageButton判断状态
- Android 编程笔记 select的使用,Button的三种状态(未点击,点击,选中保持状态)
- Cocos2dx3.1中Button三种状态的变化
- android中关于 button有三种状态的设置 enabled的设置
- delphi与汇编笔记(2)------关于EBP寄存器的说明与使用
- mmc子系统学习笔记二 关于mmc子系统笔记的说明
- [学习笔记]关于buttonMode
- Hibernate三种状态说明
- 05_传智播客hibernate教程_实体对象的三种状态与saveOrUpdate方法 2 关于delete后的状态
- 关于WPF使用MultiConverter控制Button状态的详细介绍
- [模电]放大电路的三种工作状态说明
- Windows Mobile学习笔记_关于CSpinButtonCtrl
- 关于uitableviewcell上增加button,点击后播放音频,想让音频播放完成后更改button状态的解决方:
- 关于Extjs4开发笔记(二)的补充说明
- 博客特殊说明--关于IOS学习笔记资料
- android学习中关于Textview,Button,EditText,连接的设置,Intent,Activity不同状态等的一系列基础知识点
- delphi与汇编笔记(2)------关于EBP寄存器的说明与使用
- 关于TcxCheckBox的三种状态
- 关于Android中保存activity的状态的几点学习笔记