Button添加事件

Button 目前只支持 Click 事件,即当用户点击并释放 Button 时才会触发相应的回调函数。
通过脚本代码添加回调
方法一
这种方法添加的事件回调和使用编辑器添加的事件回调是一样的,通过代码添加, 你需要首先构造一个 cc.Component.EventHandler 对象,然后设置好对应的 target, component, handler 和 customEventData 参数。
//here is your component file, file name = MyComponent.js 
cc.Class({
extends: cc.Component,
properties: {},

onLoad: function () {var clickEventHandler = new cc.Component.EventHandler();clickEventHandler.target = this.node; //这个 node 节点是你的事件处理代码组件所属的节点clickEventHandler.component = "MyComponent";//这个是代码文件名clickEventHandler.handler = "callback";clickEventHandler.customEventData = "foobar";var button = node.getComponent(cc.Button);button.clickEvents.push(clickEventHandler);
},callback: function (event, customEventData) {//这里 event 是一个 Touch Event 对象,你可以通过 event.target 取到事件的发送节点var node = event.target;var button = node.getComponent(cc.Button);//这里的 customEventData 参数就等于你之前设置的 "foobar"
}

});

方法二
通过 button.node.on('click', ...) 的方式来添加,这是一种非常简便的方式,但是该方式有一定的局限性,在事件回调里面无法 获得当前点击按钮的屏幕坐标点。
//假设我们在一个组件的 onLoad 方法里面添加事件处理回调,在 callback 函数中进行事件处理:
cc.Class({
extends: cc.Component,
properties: {
button: cc.Button
},

onLoad: function () {this.button.node.on('click', this.callback, this);
},callback: function (event) {//这里的 event 是一个 EventCustom 对象,你可以通过 event.detail 获取 Button 组件var button = event.detail;//do whatever you want with button//另外,注意这种方式注册的事件,也无法传递 customEventData
}

});

转载于:https://www.cnblogs.com/luorende/p/8150415.html

Cocos Creator 为Button添加事件的两种方法相关推荐

  1. js循环添加事件的两种方法

    js循环添加事件的两种方法 选择下拉列表中的一个li将文本传到框中 问题:写此二级菜单时用到的方法不好,对此进行优化 原始js代码: <script>// 思路:1.点击下拉框a时,ul中 ...

  2. python文字教程-Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  3. java在文件的后面添加_java 在file的尾部添加数据的两种方法总结

    java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将rando ...

  4. html+input改变图标,JS Input里添加小图标的两种方法

    我们在做网页的时候,经常需要在input里面添加小图标,那么这里就介绍比较常见的两种方法. 将小图标当做input的背景来插入,直接上代码吧: Box{ height: 50px; backgroun ...

  5. python怎么在图片上写字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  6. python如何在图片上添加文字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  7. 怎样在python的turtle中输入文字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  8. 模拟键盘鼠标事件有两种方法

    实现一个鼠标或者键盘模拟器,可以完成很多功能,比如做一个简单的游戏外挂^_^.通常,模拟键盘鼠标事件有两种方法: 1.keybd_event, mouse_event 2.SendMessage, P ...

  9. java 文件尾部_java 在file的尾部添加数据的两种方法总结

    java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将rando ...

最新文章

  1. STM32FLASH读写程序
  2. java8 遍历目录_使用java8API遍历过滤文件目录及子目录及隐藏文件
  3. cocos2d-x游戏实例(13)-简易摇杆控制主角
  4. linux下命令集合
  5. java真数组_Java真数组
  6. java路径不存在则创建文件夹_java实现文件夹不存在则创建
  7. 【jsp】JSTL标签大全详解
  8. python:实现杨辉三角
  9. 最简单的STM32入门教程----闪烁LED
  10. Excel 透视表 - 人生第二个透视表
  11. Android之Dex动态加载机制解析
  12. 尚硅谷的 ediary 笔记_【华硕灵耀X纵横(i71165G7/16GB/512GB/集显)评测】助力笔记本创新!英特尔Evo平台制定十大体验目标...
  13. CSS Sprite
  14. 华为认证是什么?这个证值得考吗?网工深思……
  15. 读书到什么程度才能算融会贯通?
  16. 「会议记录」2019.3.18
  17. 关于unity场景切换后模型变黑问题
  18. GeoServer安装VectorTile插件
  19. 2021-8-31 学习日记——idea中快捷键alt+insert找不到get和set方法
  20. python共享文件协同编辑_那些可多人协作编辑的在线文档工具

热门文章

  1. “众声喧哗”中的VR,谁来买单?
  2. 为什么说无人出租车关乎特斯拉和Uber的生死存亡
  3. AAAI2018正式落幕 13个世界顶尖AI教授都讲了啥?
  4. 2020年度“社区之星”出炉!原来社区里的技术大佬们是这样成长起来的!
  5. 最全总结:把模块当做脚本来执行的 7 种案例及其原理
  6. 实用!五款新型 Linux 命令行工具
  7. linux中根目录下各个目录的作用
  8. 前端测试 karma mocha should 都是什么鬼?
  9. 如果你在2018面试前端,那这篇文章最好看一看!
  10. WPF使用X:Static做多语言支持