滑块控件CCControlSlider
#include "cocos-ext.h" //包含头文件 using namespace cocos2d::extension;//引用命名空间 /** * 创建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); //创建 create("滑块背景图", "划过区域图", "滑块图"), 可传入精灵 和图片 CCControlSlider *slider =CCControlSlider::create(CCSprite::createWithSpriteFrameName("ST_Volume.png"), CCSprite::createWithSpriteFrameName("ST_Volume.png"), CCSprite::createWithSpriteFrameName("ST_Round.png")); slider->setMinimumValue(0.0f); //设置最低值 slider->setMaximumValue(100.0f);//设置最高值 slider->setMinimumAllowedValue(20);//设置最低可以滑动的值,0不需要设置 slider->setMaximumAllowedValue(80);//设置最高可以滑动的值 slider->setValue(50.0f); //设置当前值 slider->setPosition(ccp(p_Window->getContentSize().width * 0.55f , p_Window->getContentSize().height * 0.66f)); //设置回调函数 slider->addTargetWithActionForControlEvents(this,cccontrol_selector(MyScene::sliderCallBack) , CCControlEventValueChanged); addChild(slider);
void MyScene::sliderCallBack(CCObject *sender, CCControlEvent controlEvent){ //回调函数 CCControlSlider* slider = (CCControlSlider*)sender; CCLog("%f",slider->getValue()); }