cocos2dx之创建Button

原创 2013年12月04日 11:09:13

利用CCControlButton创建一个Button,代码如下:

void MyBottonBastLayer::initLayer() {
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    CCScale9Sprite *psc9Selected = CCScale9Sprite::create("btn-about-selected.png");
    CCLabelTTF *label = CCLabelTTF::create("My Button", "Marker Felt", 30);
    CCScale9Sprite *psc9ButtonBG = CCScale9Sprite::create("extensions/buttonHighlighted.png");
    CCControlButton *button = CCControlButton::create(label, psc9ButtonBG);

    /*set the button is pressed state*/
    button->setPosition(ccp(500.0f, size.height / 3.0f));

    button->setBackgroundSpriteForState(psc9Selected, CCControlStateSelected);
    button->setTitleColorForState(ccWHITE, CCControlStateHighlighted);


    button->addTargetWithActionForControlEvents(this, cccontrol_selector(MyBottonBastLayer::buttonCallBack), CCControlEventTouchDown);
    this->addChild(button, 1);
}

其中:

    button->addTargetWithActionForControlEvents(this, cccontrol_selector(MyBottonBastLayer::buttonCallBack), CCControlEventTouchDown);

是button所点击的时候产生的行为:

void MyBottonBastLayer::buttonCallBack(CCObject *object, CCControlEvent controlEvent) {
    CCLOG("Touch the Button");
}


关于点击时,详细参数如下:

/* 当鼠标处于按下并曾经点中按钮时,则触发一次 */  
    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);  


Lua笔记:Button控件按钮创建及使用

--------------------------- Button控件按钮使用 ----------------------------------------- --lua 中 Button按钮...
  • chinahaerbin
  • chinahaerbin
  • 2015年04月20日 11:49
  • 12400

quick-cocos2d-x button使用方法(UIPushButton、UICheckBoxButton、UICheckBoxButtonGroup)

UICheckBoxButton 开关 UICheckBoxButtonGroup 单选框 可实现tab 参考文章:http://blog.csdn.net/nynyvkhhiiii/artic...
  • bible521125
  • bible521125
  • 2016年08月04日 10:18
  • 2999

cocos2dx 使用button控件

#include "gui/CocosGUI.h" using namespace gui; Button* buttonPlay = Button::create(); buttonPlay->...
  • w18767104183
  • w18767104183
  • 2014年02月14日 23:38
  • 12954

Cocos2d-lua(一)项目创建

一、官网下载最新版本cocos2d-x, 官网地址:www.cocos.com,配置cocos2d-x环境的工作我就不说了,网上很多 二、把下载的cocos2d-x解压,找到bin目录(cocos2d...
  • fjdmy001
  • fjdmy001
  • 2016年10月21日 11:15
  • 1928

cocos2dx-3.11 使用创建Lua项目以及运行自定义场景

第一节  创建项目 现在用cocos2dx3.11版本写一个捕鱼游戏,首先创建项目,在终端里输入如下指令: cd/Users/xiaosong1531/Desktop/cocos2d-x-3.11.1...
  • u011874528
  • u011874528
  • 2016年07月21日 14:45
  • 7044

cocos2d-lua里 如何绑定按钮button的点击事件click

继续借用上文的btn_gj,这个获取出来就是个按钮 btn_gj:addClickEventListener(function(sender) --你的按钮事件处理 end)...
  • jiangziwei
  • jiangziwei
  • 2015年12月16日 13:36
  • 5726

cocos2d-C++ 学习UI控件(一)之 Button|CheckButton

最近在一家公司实习,自己就自学了cocos2dx,花了两个星期把cocos2dx-c++学了一遍,做了4个游戏。之后开始学习quick-cocos和cocos-lua,单当我在学的时候发现,自己其实存...
  • qq_16112417
  • qq_16112417
  • 2016年04月22日 16:58
  • 2857

cocos2dx-lua基础内容之 菜单项的使用

菜单中又包含了菜单项,菜单项类是MenuItem,每个菜单项都有三个基本状态:正常、选中和禁止。 MenuItemLabel类是文本菜单,它有两个子类:MenuItemAtlasFont和MenuI...
  • qq_28644183
  • qq_28644183
  • 2017年05月16日 09:27
  • 388

cocos2d-x 修改虚拟键盘上“return”按钮

我前两篇写过一些类似修改虚拟键盘的方法,看到很多人都在查找修改return的方法,我就写了此片文章,方便大家使用。 好了废话不多说,直接上步骤。 1、EAGLView.h里面添加键盘类型属性 @pr...
  • houjia159
  • houjia159
  • 2013年12月19日 17:13
  • 1205

cocos2dx之创建一个菜单按钮

1,在没有图片资源的情况下,如果想要创建一个只有字体的Menu按钮,看如下代码的创建步骤: CCLabelTTF *label = CCLabelTTF::create("Exit",...
  • ganpengjin1
  • ganpengjin1
  • 2013年11月20日 09:42
  • 12083
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2dx之创建Button
举报原因:
原因补充:

(最多只允许输入30个字)