一.Button介绍

Button就是button。Cocos中提供了Button类对button进行相关的操作。我们看一下Button类继承关系图:

能够看到。Button是继承自Widget类,Widget类就是控件类,我们全部的控件包含Buttonbutton类、CheckBox复选框类、LoadingBar进度条类、Slider滑动条类等等都继承自它

Buttonbutton控件一般都是在Cocos Studio中创建并编辑好相关属性并在代码中使用,此外也能够通过代码控制调整其相关属性。

二.通过CocosStudio创建Button控件

接下来我们就实际操作下看看Buttonbutton控件详细是怎么创建和使用的:

首先用cocos引擎创建一个空的项目并用Cocos Studio打开,我们想要创建一个Button控件。直接从左面的控件栏选择一个button控件拖入到当前编辑的界面其中就可以。只是一般制作界面时都是先创建一个Panel基础容器,然后再将控件加入到基础容器中,这样我们在代码中可先得到基础容器,然后再通过基础容器获得Button等控件并对其进行操作。这种优点是方便通过控制Panel来进行游戏适配。

我们能够在Button控件的属性栏中设置其相关属性。比方背景样式的图片绑定,须要3张图片。分别绑定button的正常状态、按下状态和禁用状态;还用button上的文本显示信息及字体大小等等。

在Cocos Studio中创建完Button控件后,我们须要保存并公布项目。详细步骤在我之前的博客中有介绍。

之后用VS打开我们刚刚创建的项目并执行。就能够看到我们在Cocos Studio中场景上创建的Button了:

三.通过代码直接创建Button

除了使用Cocos Studio创建出来的Button控件外,我们也能够通过create()方法直接在代码中创建Button使用,而且能够设置其相关属性:

//通过create()方法创建Button
auto _newButton = Button::create("Normal_Button.png", "Pressed_Button.png", "Disabled_Button.png"); //设置button title
_newButton->setTitleText("NewButton"); //设置button title颜色
_newButton->setTitleColor(Color3B(100,100,100)); //设置button title字体大小
_newButton->setTitleFontSize(35); //设置button的位置
_newButton->setPosition(Vec2(200, 200)); //设置按钮是否可点击
_newButton->setTouchEnabled(false);

四.为Button加入触摸事件

Button的主要作用当然是其具有点击交互性,接下来我们就能够获得Button并绑定其回调函数

1.使用前要加入命名空间:

using namespace cocos2d::ui;

2.然后要声明并实现回调函数:

//声明Button回调函数
void buttonCallBack(Ref *ref,cocos2d::ui::Widget::TouchEventType type); //实现Button回调函数
void HelloWorld::buttonCallBack(Ref *ref, Widget::TouchEventType type)
{
switch (type){
case Widget::TouchEventType::BEGAN:
log("buttonCallBack!");
default:
break;
}
}

能够看到。其回调函数有一个TouchEventType类型的參数。当触发事件发生时这个回调方法会被运行,同一时候传来这个參数。这个參数表示的就是此次触发事件的类型,一共同拥有4种:BEGAN、CANCELED、ENDED、MOVED。

3.最后通过Panel获得Button并对其绑定回调函数就可以:

//获得Panel
auto _panel = (Layout *)rootNode->getChildByName("Panel_1"); //获得Button
auto _button = (Button*)Helper::seekWidgetByName(_panel,"Button_1"); //绑定回调函数
_button->addTouchEventListener(CC_CALLBACK_2(HelloWorld::buttonCallBack,this));

我们是通过addTouchEventListener()方法来加入button的回调函数的。这样。执行程序。当我们点击button时便会触发其触摸事件而且执行与其绑定的回调函数,能够看到下面打印输出:

以上。

COCOS学习笔记--Button类及其相关控件属性的更多相关文章

  1. Android学习笔记(七)——常见控件

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Android 给我们提供了大量的 UI控件,下面我们简单试试几种常用的控件. 一.TextView 在布局文 ...

  2. Unity3D学习笔记(一)GUI控件的调用

    GUI控件:1.在Start中初始化,在OnGUI中调整.2.公有变量才会出现在Inspector面板.3.GUI控件的初始化和处理在OnGUI内完成.4.JavaScript的中文为UTF-8编码可 ...

  3. Tornadofx学习笔记(2)——FxRecyclerView控件的打造

    Tornadofx是基于javafx的一个kotlin框架,用来写些电脑版的小程序 基于Scroll Pane控件,仿造Android中的RecyclerView,实现的一款tornadofx的控件 ...

  4. Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法

    在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...

  5. WPF学习笔记(1)——image控件图片不显示的问题

    说明(2017-6-7 16:08:35): 1. 本来想用winform的,用winform就没这么多破事了. 2. 不过项目要用WPF,拉出一个mediaelement控件,视频正常显示. 3. ...

  6. Excel开发学习笔记:界面交互与控件的布局

    遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. , ).value ...

  7. C# 学习笔记 三层架构系列(控件一)

    下面是我两周的学习总结:这是我写给自己的,如果哪位朋友有幸看到这篇文章就是缘分.如果所说的内容不对,就请纠正.勿喷!!! 想要将两周的学习知识通过文字.通过代码.通过图片储备起来,以防自己那天思维短路 ...

  8. .net core 学习笔记(1)-分页控件的使用

    最近有个小项目,用.net core开发练练手,碰到的第一个问题就是分页控件的问题,自己写太费时间,上网查了下,发现有人已经封装好了的,就拿过来用了,分页控件github:https://github ...

  9. Android学习笔记50:使用WebView控件浏览网页

    在Android中,可以使用Webview控件来浏览网页.通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示. 图1 运行效果 1.WebView 在使用WebView控件时,首先需要在 ...

随机推荐

  1. Jquery EasyUI环境下设置下拉框选中指定选项

    前提: 要求点击某个按钮就将所有的下拉框都设置为选中第一个选项,因此,指定索引是最好的做法 尝试过的做法: html代码如下(easyui 的写法) <select class="ea ...

  2. 2016.01.22 前端学习 HTML/CSS

    学习HTML/CSS  http://edu.51cto.com/course/course_id-3116.html 明日实践

  3. mybatis 项目配置

    第一:environments MyBatis 支持多个环境,可以任意配置: 第二:transactionManager MyBatis 支持两种类型的事务管理器:JDBC 和 MANAGED(托管) ...

  4. 原生Ajax的使用——含开放API接口

    看了两天关于Ajax的使用,总感觉云里雾里的. 故在此总结梳理一下,如果疏漏错误还请纠正支出. Ajax能够在向服务器请求额外的数据时,不必重新加载/卸载整个页面,实现一小块区域性的刷新,也是常说的异 ...

  5. openstack——nova计算服务

    一.nova介绍               Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是 ...

  6. ModelBinder 请求容错性

    代码 //using System.Web.Mvc; public class TrimToDBCModelBinder : DefaultModelBinder { public override ...

  7. 好用的JS数字格式化

    /* *js格式化数字代码 * *value: 要格式化的数字值 *scale: 最多保留几位小数 *zeroed: 是否保留尾0 *percented: 是否转称百分比形式 * */ functio ...

  8. P2884 [USACO07MAR]每月的费用Monthly Expense

    题目描述 Farmer John is an astounding accounting wizard and has realized he might run out of money to ru ...

  9. P1352 没有上司的舞会——树形DP入门

    P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...

  10. 一、Scrapy入门教程

    本文转载自以下链接:https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/tutorial.html 在本篇教程中,我们假定您已经安装好Scrapy ...