看到還是有人在問這個CCControlButton這個的如何用,剛好做項目的時候有用到,跟大家分享一下啦
當然首先用到CCControlButton必須導入外部的拓展函數extensions以及#include "cocos-ext.h"頭文件名(在我的另一博文有講過了)
在此我給大家分享我一段運用CCControlButton的代碼吧
我自己把定義button的封裝起來了,如下
CCControlButton * BasicLayer::getButton( const char *image,CCRect normalrect,CCRect selectedrect,CCRect deadrect )
{
CCRect rectInsets = CCRectMake(0,0,1,1);
CCScale9Sprite *pNormal= CCScale9Sprite::create(image,normalrect,rectInsets);
CCScale9Sprite *pPress = CCScale9Sprite::create(image,selectedrect,rectInsets);
CCScale9Sprite *pDead = CCScale9Sprite::create(image,deadrect,rectInsets);
CCSize size=pNormal->getContentSize();
CCControlButton *_button = CCControlButton::create(pNormal);
_button->setPreferredSize(CCSizeMake(size.width, size.height));
// m_button->setZoomOnTouchDown(false); //設置不現實按鈕效果
_button->setBackgroundSpriteForState(pPress, CCControlStateHighlighted);
_button->setBackgroundSpriteForState(pDead,CCControlEventTouchUpInside);
_button->setZoomOnTouchDown(false);
return _button;
}
在此調用到調用這個函數即可,以及寫回調函數如下
CCControlButton *selectbutton2=getButton("bookselect.png",CCRectMake(0,54.67*3*RATIO,115*RATIO,54.67*RATIO),CCRectMake(115*RATIO,54.67*3*RATIO,115*RATIO,54.67*RATIO),CCRectMake(115*RATIO,54.67*3*RATIO,115*RATIO,54.67*RATIO));
selectbutton2->setAnchorPoint(CCPointZero);
selectbutton2->setPosition(580*RATIO+640*number*RATIO,245*RATIO);
selectbutton2->addTargetWithActionForControlEvents(this,cccontrol_selector(SelectroleLayer::selectCallback),CCControlEventTouchDown);
selectbutton2->addTargetWithActionForControlEvents(this,cccontrol_selector(SelectroleLayer::updateCallback),CCControlEventTouchUpInside);
selectbutton2->addTargetWithActionForControlEvents(this,cccontrol_selector(SelectroleLayer::updateCallback),CCControlEventTouchDragExit);
node->addChild(selectbutton2,1,(number+1)*2+50);
再者看下回調函數的例子
void SelectroleLayer::updateCallback( CCObject *pSend,CCControlEvent event ){//在裏面填寫內容}