|
1
2
3
|
// CCControlEventValueChanged //当控件的值发生改变时触发。// |
|
1
2
3
4
5
6
7
8
9
|
// //绑定控件事件 //addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged); void addTargetWithActionForControlEvents(CCObject* target, SEL_CCControlHandler action, CCControlEvent controlEvents); //删除控件事件 //removeTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged); void removeTargetWithActionForControlEvents(CCObject* target, SEL_CCControlHandler action, CCControlEvent controlEvents);// |
|
1
2
3
4
|
// #include "cocos-ext.h" //包含cocos-ext.h头文件 using namespace cocos2d::extension; //引用cocos2d::extension命名空间// |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
//class CCControlSlider: public CCControl{/** *
创建CCControlSlider的两种方式 */ //用CCSprite精灵创建滑块控件 //create("滑块背景图", "划过区域图", "滑块图"); static CCControlSlider* create(CCSprite* backgroundSprite, CCSprite* pogressSprite, CCSprite* thumbSprite); //直接用图片资源名创建,省去了创建精灵的步骤 //实际上,在其内部依旧是调用上面的create函数创建CCSprite精灵 //create("滑块背景图", "划过区域图", "滑块图"); static CCControlSlider* create(const char* bgFile, const char* progressFile, const char* thumbFile);/** *
属性设置 *
setValue , *
setMinimumValue , setMaximumValue *
setMinimumAllowedValue , setMaximumAllowedValue , *
setBackgroundSprite , setProgressSprite , setThumbSprite */ float setValue() | getValue(); //设置当前滑块的值 float setMinimumValue() | getMinimumValue(); //设置滑块最小值 float setMaximumValue() | getMaximumValue(); //设置滑块最大值 float setMinimumAllowedValue() | setMinimumAllowedValue(); //设置允许滑动的最小值 float setMaximumAllowedValue() | setMaximumAllowedValue(); //设置允许滑动的最大值 //设置滑块的背景图、划过区域图、滑块图 //CC_SYNTHESIZE_RETAIN为宏定义:除了创建了set/get以外,还用了retain来保留内存资源。 CC_SYNTHESIZE_RETAIN(CCSprite*, m_backgroundSprite, BackgroundSprite); CC_SYNTHESIZE_RETAIN(CCSprite*, m_progressSprite, ProgressSprite); CC_SYNTHESIZE_RETAIN(CCSprite*, m_thumbSprite, ThumbSprite);};// |
|
1
2
3
4
|
// #include "cocos-ext.h" //包含cocos-ext.h头文件 using namespace cocos2d::extension; //引用cocos2d::extension命名空间// |
|
1
2
3
4
5
|
// CCLabelTTF* label; //显示滑块数值的Label void valueChanged(CCObject* sender, CCControlEvent controlEvent); //当值改变时触发的控件事件// |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
////创建显示Slider值的标签 label = CCLabelTTF::create("50.0", "Arial", 32); label->setPosition( midPos + ccp(0, 100) ); this->addChild(label);//创建滑块控件CCControlSlider CCControlSlider* slider = CCControlSlider::create("sliderTrack.png", "sliderProgress.png", "sliderThumb.png"); slider->setPosition( midPos ); this->addChild(slider); //设置属性 slider->setMinimumValue(0); //设置滑块最小值 slider->setMaximumValue(100); //设置滑块最大值 slider->setMinimumAllowedValue(20); //设置允许滑动的最小值 slider->setMaximumAllowedValue(80); //设置允许滑动的最大值 slider->setValue(50); //设置当前滑块的值 //绑定事件,当滑块的值改变时触发控件事件 slider->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged);// |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// //事件响应函数,值改变时,修改label标签的内容 void HelloWorld::valueChanged(CCObject* sender, CCControlEvent controlEvent) { //获取事件委托者:滑块控制CCControlSlider CCControlSlider* slider = (CCControlSlider*)sender; //修改label的值,显示滑块的当前值 //sprintf为C语言中的字符串格式转换,这里将float转换为字符串 char str[50]; sprintf(str, "%f", slider->getValue() ); //字符串格式转换 label->setString(str); }// |
本文详细介绍了Cocos2d-x中的滑块控件CCControlSlider的使用方法,包括创建滑块、设置属性及绑定控件事件等。通过实战案例展示了如何创建滑块并实时显示滑动值。







1628

被折叠的 条评论
为什么被折叠?



