Cocos Creator游戏开发中经常使用到按钮,特别是大量按钮的情况,此时使用数组来管理这些按钮就显得更具通用性。我大致走了一下官方的示例,好像没有发现有这个小内容(或者有,但我却是没有找到),于是补充此内容如下。

典型问题预览

如下图展示的界面(图中是我一个小拙例的截图,尚未成熟,等稍后感觉可以分享后再公开):



Cocos Creator中按钮组件数组的使用

注意到,层级管理上,我使用了一个父节点controlRoot包容了两个按钮节点(实际中可能有许多按钮)。

创建操作脚本组件

代码( zxzLevelSelect.js)如下:

cc.Class({
extends: cc.Component, properties: {
but: {
default: [],
type: [cc.Button], // type 同样写成数组,提高代码可读性
}
},
touchButton(event, customEventData){
var node = event.target; switch(node.name){
case 'btnStart':
{
cc.director.loadScene('zxzBallScene');
}
break;
case 'btnBack':
{
cc.director.loadScene('zxzWelcome');
}
break; } // switch(customEventData){
// // switch(button.name){
// case '0':
// {
// cc.director.loadScene('zxzBallScene');
// }
// break;
// case '1':
// {
// cc.director.loadScene('zxzWelcome');
// }
// break; // }
}
});

代码中请注意如下几点:

1,函数touchButton(event, customEventData)是我们定义按钮的handler函数;

2,在此函数中,我们至少可以使用如上所示的两种方式在区别各个按钮,第一种方式是event.target.name(event.target对应相应的按钮组件),而name值正是我们在层次管理器中看到的按钮的名字;第二种方式是借助于handler函数中的第二个参数customEventData,在场景设计中我分别把这两个按钮的customEventData值设置为0和1(当然你可以根据需要设置为字符串等更为直观的名字)。注意到代码的后半部分使用了注释,其中正是第二种区分按钮的方式。

关联脚本组件及设置按钮handler函数

上述小场景文件名为zxzLevelSelection.fire,我在层级管理的最上层Canvas节点上关联了上面的脚本 zxzLevelSelect.js,并绑定上面两个按钮组件,如下图所示:



然后,依次选择两个按钮组件,各自关联上对应的handler函数,如下图所示(仅给出一个即可):



请注意:无论多少个按钮,都要按照上述思路进行关联才行。

小结

本文给出Cocos Creator编程中按钮组件数组的使用补充,不足处请各位提醒,非常感谢。

Cocos Creator中按钮组件数组的使用的更多相关文章

  1. Cocos Creator 中 _worldMatrix 到底是什么(上)

    Cocos Creator 中 _worldMatrix 到底是什么(上) 1. (矩阵)Matrix是什么,有什么用 (矩阵)Matrix一个神奇的存在?在开发过程中对里边各项值的含义是不是抓耳挠腮 ...

  2. 在 Cocos Creator 中使用 Protobufjs(一)

    一. 环境准备 我一直在探索Cocos H5正确的开发姿势,目前做javascript项目已经离不开 nodejs.npm或grunt等脚手架工具了. 1.初始化package.json文件 npm ...

  3. Cocos Creator 中 _worldMatrix 到底是什么(中)

    Cocos Creator 中 _worldMatrix 到底是什么(中) 1. 中篇摘要 在上篇中主要做了三件事 简单表述了矩阵的基本知识,以及需要涉及到的三角函数知识 推导了图形变换中 位移 .旋 ...

  4. kbengine_js_plugins 在Cocos Creator中适配

    kbengine_js_plugins 改动(2017/7/6) 由于Cocos Creator使用严格模式的js,而原本的kbengine_js_plugins是非严格模式的,因此为了兼容和方 便C ...

  5. Cocos Creator 中的动作系统那些事儿

    动作系统就是可以在一定的时间内实现位移.旋转.缩放.跳动等各种动作. 需要注意的是,动作系统跟 Cocos Creator 编译器的动画系统不同,动作系统是面向程序员的API接口,而动画系统是通过编译 ...

  6. cocos creator 底部按钮touch延迟

    cocos论坛里有这个问题: http://forum.cocos.com/t/ios-touchstart-bug/63367我的引擎版本:"engine_version": & ...

  7. Cocos Creator中使用事件中心

    export class EventCenter { /** 监听数组 */ private listeners = {}; /** * 注册事件 * @param name 事件名称 * @para ...

  8. cocos creator 中的粒子效果

    途中的粒子效果,通过plist文件和png两个文件,创建一个粒子节点,将plist文件拖入到粒子节点的file属性中,然后给custom属性打钩,把png文件拖入到texture属性中即可.

  9. cocos creator中粒子效果的使用

    就如同上图的星星特效一样,在触碰时产生特效,但是并不销毁节点,因为要使用很多次,因此使用节点池NodePool保存起来的. 以下是使用粒子效果使要使用到的一些基本控制函数: 我的使用:

随机推荐

  1. Python学习3——列表和元组

    一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...

  2. 环信联合创始人: Saas敏捷开发实践!

    马晓宇 --环信联合创始人/执行总裁 我们是一个做云服务的创业公司,所以我就云服务创业公司的角度,来谈谈我们是怎么去实践敏捷开发的.确切地说,就是讲讲我们这几年的这些教训... 1-创业公司敏捷开发流 ...

  3. hdu 3364 高斯入门。。

    扣了一个高斯的介绍 比较全面(来自http://blog.csdn.net/duanxian0621/article/details/7408887) 高斯消元法,是线性代数中的一个算法,可用来求解线 ...

  4. hdu 1869 枚举+Dijstra

    一点小变形就是了..] #include<iostream> #include<cstdio> #define maxn 201 #define inf 999999 usin ...

  5. Scala学习二十一——隐式转换和隐式参数

    一.本章要点 隐式转换用于类型之间的转换 必须引入隐式转换,并确保它们可以以单个标识符的形式出现在当前作用域 隐式参数列表会要求指定类型的对象.它们可以从当前作用域中以单个标识符定义的隐式对象的获取, ...

  6. thinkphp 4.8 漏洞测试

    首先要部署环境 这里利用docker的方便部署性,来直接找个现成的    git clone https://github.com/vulnspy/thinkphp-5.1.29.git 下载安装后, ...

  7. angularJs同步请求

    今天在写几级联动的时候,因为比如上一个接口请求数据成功返回后,才能根据上一个接口返回的数据请求下一个接口,以此类推:因此有了同步请求的想法. 在前端做同步读取显然不是好的实践做法,同步之后会严重影响前 ...

  8. vue生命周期详细过程

  9. 用Leangoo看板进行可视化的缺陷跟踪管理

    转自:https://www.leangoo.com/10464.html 缺陷管理通常关注如下几个方面: 1. 缺陷的处理速度 2. 缺陷处理的状态 3. 缺陷的分布 4. 缺陷产生的原因 使用Le ...

  10. boost交叉编译

    运行bootstrap.sh # ./bootstrap.sh 生成b2.bjam和project-config.jam文件 修改project-config.jam using gcc : arm ...