SwitchControl控件起到了一个开关的作用类似于现实生活中的开关,由于控件比较简单,我就不做过多的解释,直接上代码。
首先在工程目录下的Resource文件夹中添加三张图片:
在SwitchControl.h添加下面代码
#ifndef _SwitchControl_H_
#define _SwitchControl_H_
#include “cocos2d.h”
#include “cocos-ext.h”
USING_NS_CC;
USING_NS_CC_EXT;
class SwitchControl : public CCLayer
{
public:
static CCScene* scene();
CREATE_FUNC(SwitchControl);
bool init();
void switchValueChanged(CCObject*, CCControlEvent);
};
#endif
在SwitchControl.cpp中添加下面代码:
#include “SwitchControl.h”
CCScene* SwitchControl::scene()
{
CCScene* s = CCScene::create();
SwitchControl* layer = SwitchControl::create();
s->addChild(layer);
return s;
}
bool SwitchControl::init()
{
CCLayer::init();
//得到窗口的大小
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
//设置ControlSwitch控件打开的文字No”
CCLabelTTF* on = CCLabelTTF::create(“ON”, “Arial”, 16);
//设置ControlSwitch控件关闭时的文字”OFF”
CCLabelTTF* off = CCLabelTTF::create(“OFF”, “Arial”, 16);
//设置ControlSwitch控件打开的文字的颜色
on->setColor(ccc3(0, 0, 0));
//设置ControlSwitch控件关闭时的颜色
off->setColor(ccc3(0, 0, 0));
//创建ControlSwitch控件
CCControlSwitch* control = CCControlSwitch::create(
CCSprite::create(“switch-mask.png”),
CCSprite::create(“switch-on.png”),
CCSprite::create(“switch-off.png”),
CCSprite::create(“switch-thumb.png”),
on,
off);
//添加ControlSwitch控件
addChild(control);
//设置ControlSwitch控件的位置
control->setPosition(ccp(winSize.width / 2, winSize.height / 2));
// 注册valuechange消息,当valuechange时,调用switchValueChanged函数
control->addTargetWithActionForControlEvents(this,
cccontrol_selector(SwitchControl::switchValueChanged),
CCControlEventValueChanged);
return true;
}
void SwitchControl::switchValueChanged(CCObject* sender, CCControlEvent ev)
{
if (ev == CCControlEventValueChanged)
{
CCControlSwitch* control = (CCControlSwitch*)sender;
if (control->isOn())
{
CCLog(“Switch if ON”);
}
else
{
CCLog(“Swith is Off”);
}
}
else
{
CCLog(“other events”);
}
}