Cocos Creator中按钮组件数组的使用
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中按钮组件数组的使用的更多相关文章
- Cocos Creator 中 _worldMatrix 到底是什么(上)
Cocos Creator 中 _worldMatrix 到底是什么(上) 1. (矩阵)Matrix是什么,有什么用 (矩阵)Matrix一个神奇的存在?在开发过程中对里边各项值的含义是不是抓耳挠腮 ...
- 在 Cocos Creator 中使用 Protobufjs(一)
一. 环境准备 我一直在探索Cocos H5正确的开发姿势,目前做javascript项目已经离不开 nodejs.npm或grunt等脚手架工具了. 1.初始化package.json文件 npm ...
- Cocos Creator 中 _worldMatrix 到底是什么(中)
Cocos Creator 中 _worldMatrix 到底是什么(中) 1. 中篇摘要 在上篇中主要做了三件事 简单表述了矩阵的基本知识,以及需要涉及到的三角函数知识 推导了图形变换中 位移 .旋 ...
- kbengine_js_plugins 在Cocos Creator中适配
kbengine_js_plugins 改动(2017/7/6) 由于Cocos Creator使用严格模式的js,而原本的kbengine_js_plugins是非严格模式的,因此为了兼容和方 便C ...
- Cocos Creator 中的动作系统那些事儿
动作系统就是可以在一定的时间内实现位移.旋转.缩放.跳动等各种动作. 需要注意的是,动作系统跟 Cocos Creator 编译器的动画系统不同,动作系统是面向程序员的API接口,而动画系统是通过编译 ...
- cocos creator 底部按钮touch延迟
cocos论坛里有这个问题: http://forum.cocos.com/t/ios-touchstart-bug/63367我的引擎版本:"engine_version": & ...
- Cocos Creator中使用事件中心
export class EventCenter { /** 监听数组 */ private listeners = {}; /** * 注册事件 * @param name 事件名称 * @para ...
- cocos creator 中的粒子效果
途中的粒子效果,通过plist文件和png两个文件,创建一个粒子节点,将plist文件拖入到粒子节点的file属性中,然后给custom属性打钩,把png文件拖入到texture属性中即可.
- cocos creator中粒子效果的使用
就如同上图的星星特效一样,在触碰时产生特效,但是并不销毁节点,因为要使用很多次,因此使用节点池NodePool保存起来的. 以下是使用粒子效果使要使用到的一些基本控制函数: 我的使用:
随机推荐
- spring-cloud 学习四 服务网关
API Gateway 服务网关在微服务中是一个很重要的组成部分,通过服务网关可以统一向外提供REST API,例如 / 映射到后端应用 /api/user 映射到 user service, /a ...
- 在QT中添加LIB的方法
注意:-L后面跟着的目录不能用空格,否则会出现读不到的情况. 例如win32下添加D:\app\my.lib 就 pro文件中 LIBS += -LD:\app\debug\ -lmy
- 安卓开发之sql语句增删改查2(利用谷歌封装好的API进行增删改查)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 阻塞IO和非阻塞IO
1 TCP协议 每一个TCP通信的的socket的内核里面都会有一个发送缓冲区和接收缓冲区 发送端 : send 报文 -- TCP发送缓冲区 -- 接收端 :TCP接收缓冲区 -- receive ...
- linux 中free命令
1.free 命令的选项使用 free 命令查看服务器内存使用情况.free [-b|-k|-m|-g|-h] [-l] [-o] [-t] [-s delay] [-c count] [-V](1) ...
- 【Distributed】限流技巧
一.概述 1.1 高并发服务限流特技 1.2 为什么要互联网项目要限流 1.3 高并发限流解决方案 二.限流算法 2.1 计数器 2.2 滑动窗口计数 2.3 令牌桶算法 使用RateLimiter实 ...
- 第一章 Django之web框架(1)
Django 是新一代 Web 框架 中非常出色的成员.那么 Web 框架这个术语的确切含义到底是 什么呢? 要回答这个问题,让我们来看看通过编写标准的 CGI 程序来开发 Web 应用,这在大约19 ...
- 解决Django项目静态资源无法访问的问题
静态资源无法访问 url.py中配置 from django.conf.urls import url from django.views import static from django.conf ...
- Jmeter中间件处理-ActiveMQ
消息队列是目前的主流中间件,我们在日常测试过程中,无论是接口还是压力测试,都会遇到需要处理这些中间件数据的情况.本文以Activemq的Topic为例,说明如何基于Jmeter实现消息队列数据的发送和 ...
- java线程基础巩固---线程生命周期以及start方法源码剖析
上篇中介绍了如何启动一个线程,通过调用start()方法才能创建并使用新线程,并且这个start()是非阻塞的,调用之后立马就返回的,实际上它是线程生命周期环节中的一种,所以这里阐述一下线程的一个完整 ...