Cocosd-x的Slider控件实际上就是滑块控件,一般用于音乐中的音量控制,在Windows编程中开发音乐播放器就需要用到滑块控件控制音量。

首先在工程目录下的Resource文件夹中放


20141016083307234.png


20141016083712574.png

在Skider.h添加下面的代码

#ifndef __Slider_H__

#define __Slider_H__

#include "cocos2d.h"

#include "cocos-ext.h"

USING_NS_CC;

USING_NS_CC_EXT;

class Slider : public CCLayer

{

public:

static CCScene* scene();

CREATE_FUNC(Slider);

bool init();

void ValueChanged(CCObject*, CCControlEvent);

};

#endif

在Skider.cpp添加下面的代码

#include "Slider.h"

CCScene* Slider::scene()

{

CCScene* s = CCScene::create();

Slider* layer = Slider::create();

s->addChild(layer);

return s;

}

bool Slider::init()

{

//初始化父类

CCLayer::init();

//得到窗口的尺寸

CCSize winSize = CCDirector::sharedDirector()->getWinSize();

//创建一个滑块

CCControlSlider* slider = CCControlSlider::create("sliderTrack.png", "sliderProgress.png", "sliderThumb.png");

//添加滑块

addChild(slider);

//设置滑块的位置

slider->setPosition(ccp(winSize.width / 2, winSize.height / 2));

//设置滑块滑动范围的最小值

slider->setMinimumValue(0);

//设置滑块的最大值

slider->setMaximumValue(100);

//设置滑块滑动时的最大值,此功能常用于视频网站中的免费试看的电影

slider->setMaximumAllowedValue(90);

//设置滑块滑动的最小值,此功能常用于视频网站中的免费试看的电影

slider->setMinimumAllowedValue(10);

//滑块响应函数(当滑块滑动时调用ValueChanged函数)

slider->addTargetWithActionForControlEvents(this,

cccontrol_selector(Slider::ValueChanged),

CCControlEventValueChanged);

return true;

}

void Slider::ValueChanged(CCObject* sender, CCControlEvent ev)

{

//当滑块滑动时

if (ev == CCControlEventValueChanged)

{

CCControlSlider* slider = (CCControlSlider*)sender;

//得到滑块的值

float f = slider->getValue();

//打印滑块的值

CCLog("current value is %f", f);

}

}

执行结果:


20141016084523546.png

测试运行效果:


20141016085028644.gif