(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());
}