cocos2dX UI控件之CCControlSlider

今天我们来学习另一个扩展库控件CCControlSlider, 这是一个滑动条控件, 我们来看看具体的用法, 

用法:


CCControlSlider::create( 背景精灵, 滑过区域精灵, 滑块精灵);


老规矩, 在网上下载个滑动条的素材:


然后把我们喜欢的抠出来:



我们来创建一个CCControlSlider对象:

刚刚说了是扩展库里面的, 所以#include "cocos-ext.h"/USING_NS_CC_EXT;是不可少的哦

CCControlSlider* cs = CCControlSlider::create( "bg.png", "xr.png", "bt.png");
	cs->setPosition( ccp( visibleSize.width / 2, visibleSize.height / 2));
	addChild( cs, 0, 101);



我们运行看看, ( 旁白: 骗子, 大骗子, 根本就不能动啊)



的确, 我们现在都CCControlSlider是不能动, 因为我们没有设置它的最大值, 最小值之类的, 所以我们来看看比较常用的函数



setMinimumValue( float); //设置最小值
setMaximumValue( float); //设置最大值
setValue( float); //设置当前值
setMinimumAllowedValue( float); //设置最小可滑动值
setMaximumAllowedValue( float); //设置最大可滑动值

getValue(); //获取当前值



我们把加上去看看效果:

	cs->setMinimumValue( 0.0f);				//设置最小值
	cs->setMaximumValue( 100.0f);			//设置最大值
	cs->setValue( 50.0f);					//设置当前值
	cs->setMinimumAllowedValue( 20.0f);		//设置最小可滑动值
	cs->setMaximumAllowedValue( 80.0f);		//设置最大可滑动值



再来看看效果:



是不是就可以自由滑动了, 但是两头不能到, 对不对, 


我们继续, 来添加一个回调函数:

和昨天一样的哦, 所以我就偷个懒, 没有删除昨天的, 直接在上面修改了大笑( 旁白: 简直无药可救了)

void callMySwitch( CCObject* pSender, CCControlEvent controlEvent);

实现它, 在实现之前, 我们还是和昨天一样, 在init里面创建一个标签, 用来显示当前值, 顺便也把事件和函数绑定了:

CCLabelTTF* ttf = CCLabelTTF::create( "50.0", "Arial", 24);
	ttf->setPosition( ccp( visibleSize.width / 2, visibleSize.height / 2 - 50));
	addChild( ttf, 0, 102);

	//绑定事件
	cs->addTargetWithActionForControlEvents( this,
		cccontrol_selector( HelloWorld::callMySwitch),
		CCControlEventValueChanged);		//值发生改变

void HelloWorld::callMySwitch( CCObject* pSender, CCControlEvent controlEvent)
{
	char buff[10] = {0};
	CCControlSlider* cs = (CCControlSlider*)this->getChildByTag( 101);
	CCLabelTTF* ttf = (CCLabelTTF*)this->getChildByTag( 102);
	std::sprintf( buff, "%f", cs->getValue());
	ttf->setString( buff);
}



看看效果, 是不是下面的值跟着滑动条在改变啊, 最小20, 最大80




嘿嘿, 今天就到此为止了哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值