生活随笔
收集整理的這篇文章主要介紹了
cocos2d-x按钮CCControlButton的用法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)載請(qǐng)注明,原文地址:??http://blog.csdn.net/musicvs/article/details/8242963
?
1.?按鈕創(chuàng)建
[cpp]?view plaincopyprint?
?? ????CCScale9Sprite*?btnNormal?=?CCScale9Sprite::create("button.png");?? ?? ?????? ????CCScale9Sprite*?btnDown?=?CCScale9Sprite::create("buttonHighlighted.png");?? ?? ?????? ????CCLabelTTF?*title?=?CCLabelTTF::create("Touch?Me!3324234",?"Marker?Felt",?30);?? ?? ?????? ????CCControlButton*?controlBtn?=?CCControlButton::create(title,?btnNormal);?? ?? ?????? ????controlBtn->setBackgroundSpriteForState(btnDown,?CCControlStateSelected);?? ????controlBtn->setPosition(ccp(200,?200));?? ????this->addChild(controlBtn);??
?
其實(shí)代碼很簡(jiǎn)單,兩張圖片,分別是按鈕正常狀態(tài)和點(diǎn)擊狀態(tài)圖片,當(dāng)然,她們都是九妹圖片~
然后是一個(gè)標(biāo)題標(biāo)簽,當(dāng)然了,如果按鈕沒有標(biāo)題,呢誰知道是什么作用呢~
?
最后要界面一個(gè)新的家伙:?CCControlButton。
我是這么理解的,CCControlButton它只是一個(gè)空殼,它具備很多按鈕所需要的功能(點(diǎn)擊事件什么的),然后九妹圖片和標(biāo)題標(biāo)簽是內(nèi)容,把內(nèi)容添加到這個(gè)空殼里,一個(gè)按鈕就誕生了:
?
但是有一點(diǎn)要注意,按鈕的大小是根據(jù)標(biāo)簽內(nèi)容進(jìn)行縮放的,那,如果我想讓按鈕的大小固定呢?畢竟不是所有人都喜歡變化~!
?
很簡(jiǎn)單,就一句話:
[cpp]?view plaincopyprint?
?? ????controlBtn->setPreferredSize(CCSize(300,?50));??
?
搞定~
?
2.?按鈕事件
按鈕怎么可能少了點(diǎn)擊事件呢?~這個(gè)很簡(jiǎn)單,直接看代碼,注釋已經(jīng)很詳細(xì)了。
[cpp]?view plaincopyprint?
?? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDownAction),?CCControlEventTouchDown);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragEnter),?CCControlEventTouchDragEnter);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragExit),?CCControlEventTouchDragExit);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragInside),?CCControlEventTouchDragInside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragOutside),?CCControlEventTouchDragOutside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchUpInside),?CCControlEventTouchUpInside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchUpOutside),?CCControlEventTouchUpOutside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchCancel),?CCControlEventTouchCancel);??
?
回調(diào)函數(shù)是這樣的:
[cpp]?view plaincopyprint?
void?touchDownAction(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragEnter(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragExit(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragInside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragOutside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchUpInside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchUpOutside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchCancel(CCObject*?pSender,?CCControlEvent?event);??
?
唯一要注意的是,CCControlEvent?不是指針,千萬不要習(xí)慣了就給它加一個(gè)*號(hào)~
轉(zhuǎn)載于:https://www.cnblogs.com/lexiaoyao-jun/archive/2013/03/01/5208266.html
總結(jié)
以上是生活随笔為你收集整理的cocos2d-x按钮CCControlButton的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。