cocos2dx滑动条实现

来源:互联网 发布:java视频推荐 编辑:程序博客网 时间:2024/05/16 18:41

【一】:创建


方法:

CCCOntrolSlider::create("滑动条背景图","划过区域图","滑块图");


【二】:函数


1.setValue(float value);                                       //设置当前滑动条值

2.getValue();                                                        //获取当前滑动条值

3.setMinimumValue(float value);                       //设置滑动条最小滑动值

4.setMaximumAllowedValue(float value);        //设置滑动条实际最小滑动值

5.setMaximumValue(float value);                      //设置滑动条最大值

6.setMaximumAllowedValue(float value);        //设置滑动条实际最大值


除此之外,我们还要加一个监听函数

addTargetWithActionForControlEvents("目标对象","目标函数","监听动作");


【三】:示例


Controlslider.h


1.包含一下cocos-ext.h文件 #include "cocos-ext.h"

2.引用一下cocos2d::extension命名空间 using namespace cocos2d::extension;

3.设置回调函数void valueChanged(CCObject *sender,CCControlEvent);


Controlslider.cpp


1.引用一下cocos2d::extension命名空间 using namespace cocos2d::extension;

2.引用一下CocosDenshion命名空间 using namespace CocosDenshion;

3.准备3张图片,这里我也给大家准备好了,接着我们加载进来。





4.代码:CCControlSlider*myslider=CCControlSlider::create("bg.png","jd.png","hk.png");myslider->setPosition(ccp(mysize.width/2,mysize.height/2));myslider->setMaximumValue(100);//myslider->setMaximumAllowedValue(50);  //这里,如果启用则只能滑动一半哦myslider->setMinimumValue(0);this->addChild(myslider,0,521); //这里3个参数表示:对象,层,标记



   好,我们运行下看看。



 那么接下来我们来实现显示当前进度值。       继续写。//添加监控myslider->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlslider::valueChanged),CCControlEventValueChanged);//设置个显示CCLabelTTF * numttf=CCLabelTTF::create("","Helvatica",14);numttf->setPosition(ccp(mysize.width/2,mysize.height-100));numttf->setString(CCString::createWithFormat("%.02f",myslider->getValue())->getCString());this->addChild(numttf,0,522);       最后我们写一下回调void Controlslider::valueChanged(CCObject *sender,CCControlEvent){//方法1/*CCControlSlider * myslider=(CCControlSlider *)this->getChildByTag(521);CCLabelTTF * numttf=(CCLabelTTF*)this->getChildByTag(522);numttf->setString(CCString::createWithFormat("%.02f",myslider->getValue())->getCString());*///方法2CCControlSlider * myslider=(CCControlSlider *)sender;CCLabelTTF * numttf=(CCLabelTTF*)this->getChildByTag(522);numttf->setString(CCString::createWithFormat("%.02f",myslider->getValue())->getCString());}       好了,生成运行一下看看。





原创粉丝点击