#include "GameMusicSetting.h"
bool GameMusicSetting::init()
{
if(!CCLayer::init())
{
return false;
}
CCSize size=CCDirector::sharedDirector()->getWinSize();
//参数分别为:滑道图片,滑块滑动后滑道覆盖图片,滑块图片
CCControlSlider *slider=CCControlSlider::create("bg_ScrollBtn.png", "value_ScrollBtn.png", "bar_ScrollBtn.png");
slider->setMinimumAllowedValue(0); //设置滑块设置的最小值
slider->setMaximumAllowedValue(5);
slider->setAnchorPoint(ccp(0.5,1));
slider->setPosition(ccp(size.width/2, size.height/2));
//设置滑块滑动后的回调函数
slider->addTargetWithActionForControlEvents(this,cccontrol_selector(GameMusicSetting::callback),CCControlEventValueChanged);
addChild(slider,1);
return true;
}
//注意:由于当滑动条值改变时,就会调用这个函数,所有,如果是在本机文件中需要记录这个值的话,那么最好不要在这里对文件进行读写,而是通过仅在此改变成员变量的值
//在这个类结束时,再进行文件的写入操作,否则,频繁的读写,只能造成滑动条的卡顿,甚至程序的崩溃。
void GameMusicSetting::callback(CCObject *sender, CCControlEvent controlEvent)
{
CCControlSlider * pslider=(CCControlSlider *)sender;
CCLOG("%f",pslider->getValue()*5); //输出此时滑块所在位置代表的值
}
实现的效果:
同理,如果要实现比例条,也完全可以采用此控件,只不过是把滑动按钮设置成透明的,直接设置滑块按钮的位置,这样,就可以达到显示比例的效果。
当然,这也不是最简单的方法,最简单的比例条可以通过两个进度图片来实现,直接设置覆盖图片的y轴的显示比例,使其覆盖底层的被覆盖的图片,即可实现显示比例条的效果,并且比前一种方法更好。
另外,通过setTextureRect直接设置覆盖图片的显示范围,也能达到很好的比例条显示效果。
欢迎转载,转载请注明出处:http://blog.csdn.net/somestill/article/details/10075861