游戏设置中经常有滑块来控制数值的大小,既方便又美观,那么Cocos是怎么实现的呢?
本文仅供个人记录和复习,不用于其他用途
滑块类
滑块类CCControlSlider
继承于控件类CCControl
,发生了相应的触发事件后,就会调用回调函数,这个和CCMenu
是一样的。
3.x版本改变
- 去掉
CC
- 对象类
CCObject
改为Ref
CCControlEvent
改为强枚举Control::EventType
CCControlEventValueChanged
改为Control::EventType::VALUE_CHANGED
- 按钮事件回调依旧为
cccontrol_selector
,没有使用CC_CALLBACK_2
2.x滑块控件
事实上,电脑中的音量调节按钮,就是一个滑块控件。我们可以拖动滑块,从而达到改变音量的目的。
首先呢,我们需要包含一个头文件,并且声明命名空间:
|
|
创建方法如下:
|
|
第一个参数代表轨道,第二个参数代表滑块的进度,第三个参数就是拖动按钮。
然后创建一个标签和回调函数:
|
|
下面是一些设置属性:
|
|
回调函数的实现如下:
|
|
效果如下:
常见问题
3.x版本中会遇到一个问题,那就是包含了cocos-ext.h
后,仍然无法找到相关的定义。查看相关的类文件,我们会发现一个问题,那就是提示无法打开源文件extensions/ExtensionExport.h
。
3.4版本后,首先在你自己的头文件中包含头文件和命名空间:
|
|
然后选中工程右键属性
->配置属性
->c/c++
->常规
->附加包含目录
中添加下列代码:
$(EngineRoot)
$(EngineRoot)cocoseditor-support
$(EngineRoot)cocos