(1)点9图与按钮搭配
//正常状态按钮
CCScale9Sprite* btnNormal = CCScale9Sprite::create("button.png");
//单击状态按钮
CCScale9Sprite* btnDown = CCScale9Sprite::create("buttonHighlighted.png");
//按钮标题
CCLabelTTF* title = CCLabelTTF::create("Click me","Arial",30);
//创建按钮(按钮大小根据内容自动调整)
CCControlButton* btn = CCControlButton::create(title,btnNormal);
//设置按下时的图片
btn->setBackgroundSpriteForState(btnDown,CCControlStateSelected);
//设置按钮的初始大小
btn->setPreferredSize(CCSize(300,50));
//添加点击事件
btn->addTargetWithActionForControlEvents(this,cccontrol_selector(HelloWorld::touchDown),CCControlEventTouchDown);
btn->setPosition(ccp(200,200));
this->addChild(btn);
回调函数:
void HelloWorld::touchDown(CCObject* pSender,CCControlEvent event){
CCLOG("touchDown");
}
(2)计位按钮
//添加计位按钮
CCControlPotentiometer* p_meter = CCControlPotentiometer::create(
"potentiometerTrack.png",
"potentiometerProgress.png",
"potentiometerButton.png");
p_meter->setPosition(ccp(100,200));
//添加进度监听事件
p_meter->addTargetWithActionForControlEvents(this,
cccontrol_selector(HelloWorld::valueChange),
CCControlEventValueChanged);
this->addChild(p_meter);
回调函数:
void HelloWorld::valueChange(CCObject* pSender,CCControlEvent event){
CCControlPotentiometer* btn_meter = (CCControlPotentiometer*)pSender;
CCString* value = CCString::createWithFormat("%f",btn_meter->getValue());
CCLOG(value->getCString());
}
(3)另一种音量控制按钮
//添加血条
CCControlSlider* p_slider= CCControlSlider::create(
"background.png",
"progress.png",
"sliderThumb.png");//只要将控制按钮改成透明的即可形成血条
p_slider->setPosition(ccp(100,200));
//设置滑动条的范围
p_slider->setMinimumValue(0);
p_slider->setMaximumValue(100);
//设置初始值
p_slider->setValue(50);
//添加进度监听事件
p_slider->addTargetWithActionForControlEvents(this,
cccontrol_selector(HelloWorld::valueChangeForSlider),
CCControlEventValueChanged);
this->addChild(p_slider);
回调函数:
void HelloWorld::valueChangeForSlider(CCObject* pSender,CCControlEvent event){
CCControlSlider* btn_slider = (CCControlSlider*)pSender;
CCString* value = CCString::createWithFormat("%f",btn_slider->getValue());
CCLOG(value->getCString());
}