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


相关文章推荐

在COCOS2D-X里如何制作各种按钮

程序截图: 注意:原文是基于Cocos2d-iphone的教程,现已改为Cocos2d-X-3.0Beta版本。 当你在使用cocos2d制作一个游戏的时候,你很可能会发现,你需要的第一个东西...

Cocos2D-X学习7:菜单按钮

Cocos中通过设置菜单,可以使按钮具备交互功能。

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

cocos2dx 3.x Button的认识

1. Button 的创建

寒風的Cocos2dx之旅之添加按钮

要在Cocos2d中使用Button,首先引入头文件#include "ui/CocosGUI.h"  using namespace uil;        引入完毕后,就创建button。代码如下...

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

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

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

继续借用上文的btn_gj,这个获取出来就是个按钮 btn_gj:addClickEventListener(function(sender) --你的按钮事件处理 end)...

quick-cocos2d-x button使用方法

demo中给出了以下几种觉按钮 1 普通按钮 2

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

--------------------------- Button控件按钮使用 ----------------------------------------- --lua 中 Button按钮...

COCOS学习笔记--Button类及其相关控件属性

Button就是按钮,Cocos中提供了Button类对按钮进行相关的操作。我们看一下Button类继承关系图: 可以看到,Button是继承自Widget类,Widget类就是控件类,我们所有的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2dx之创建Button
举报原因:
原因补充:

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