Cocos Creator cc.Node.点击事件
触摸事件
1.触摸事件的类型:START触摸启动,MOVED移动,ENDED弹起来,CANCEL取消;
ENDED和CANCEL区别是ENDED物体内弹起来,CANCEL是在物体外范围弹起。
2.监听触摸事件,node.on(类型,callback,target(回调函数的this),[useCapture])
3.触摸事件,node.on(类型,callback,target(回调函数的this),[useCapture])
//(1)监听触摸事件 向引擎底层注册回调函数
//当有触摸事件发生等时候,调这个方法
//cc.Node.EventType.TOUCH_START 触摸开始
//(2)回调函数等格式 function(t) t对象是tt.Touch的对象
//这个对象包含的信息有[触摸信息,事件信息];
//(3)target 目标谁来调等callback 哪个对象来调用等这个callback
//那就是哪个对象在callback来绑定实例,target就是里面this对象
//最后一个参数默认即可
onLoad: function() {
this.node.on(cc.Node.EventType.TOUCH_START,
function(t){console.log("cc.Node.EventType.TOUCH_START ")},this)
this.node.on(cc.Node.EventType.TOUCH_MOVE,
function(t){console.log("cc.Node.EventType.TOUCH_MOVE ")},this)
this.node.on(cc.Node.EventType.TOUCH_END,
function(t){console.log("cc.Node.EventType.TOUCH_END ")},this)
this.node.on(cc.Node.EventType.TOUCH_CANCEL,
function(t){console.log("cc.Node.EventType.TOUCH_CANCEL ")},this)
},
4.如果这时候 不想监听了 就可以通过off来关闭, 但是你的,
callback不要是匿名函数,要用一个函数对象来保存
on_touch_moved:function(t){
console.log("cc.Node.EventType.TOUCH_END ");
},
5.关闭注册
this.node.off(cc.Node.EventType.TOUCH_END,
this.on_touch_moved ,this)
6.移除目标上的所有事件
targetoff(target)
7.cc.Touch
getLocation 获取当前触点位置 做下角(0,0)为起始点
getDelta 获取触点距离上一次事件移动的距离对象,对象包含 x 和 y 属性
8.cc.Touch 同时包含 cc.Event事件
父节点移动那么所有的子节点都移动,那也就是("父节点是包含了
整个子节点的一个整体"),那这个整体其中一个成员收到来一个事件,
这时候这事件会向上传递,就是说你的一个子节点有一个事件发生后,
父节点是可以收到等,这个就叫做事件等向上传递,事件冒泡。
如果子节点觉得这是一个私有事件,不想向上传递,想挡住这个事件,
stopPropagationImmediate//立即停止事件传递
stopPropagation停止传递当前事件。
9.按键事件
按键分类:按下EventType.KEY_DOWN,弹起KEY_UP
注册键盘事件
注意systemEvent是小写开头,
大写是类,
小写是全局实例 他的说明是:系统事件单例,方便全局使用.
onLoad: function() {
//按键被按下
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN,
this.on_key_down,this);
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP,
this.on_key_up,this);
},
on_key_down: function(event){
//获取按键 每个按键对应一个按键码
//event对象带有keyCode 按键码
//按键码在cc.KEY里面定义的
console.log("按下");
switch(event.KeyCode){
case cc.KEY.space:
console.log("空格按下");
break;
}
},
on_key_up: function(event){
switch(event.KeyCode){
case cc.KEY.space:
console.log("空格弹起");
break;
}
},
10.自定义事件
自己定义的事件,比如我要向你发送一个通知.
监听:this.node.on("自定义事件名",function,target,useCapture);
触发(派发事件):emit("事件名",[detail]) 只有自己能收到
冒泡派送:dispatchEvent(new cc.Event.EventCustom("name",是否冒泡传递))
onLoad:function(){
//接收者
//事件类型是自定义字符串等 为事件名字
//回调函数 参数Event.EventCustom的实例
this.node.on("pkg_event",function(e){
console.log("pkg_event");
//输出自定义事件传过来等 自定义数据
console.log(e.detail.name);
},this);
//end
//发送者 直接触发事件
//这种方法不会对事件传播到任何其他对象
//也就是说这个事件只能传给自己
//detail Object 事件的详细数据
//可以传递自定义数据 比如说传一个表
this.node.emit("pkg_event",{name:"下面"});
//end
},
如果我们要把这个事件向上发送
//如果这个事件要向上传递,也就是不只是传给自己
////true向上传递 false不向上传递
var ea = new cc.Event.EventCustom("pkg_event",true);
//自定义数据
ea.detail = {name:"小王"};
//指定这个事件向上传递
this.node.dispatchEvent(ea);
//end
父节点接收事件 脚本
onLoad :function() {
this.node.on("pkg_event",function(e){
console.log("父节点收到冒泡");
console.log(e.detail.name);
},this);
},
Cocos Creator cc.Node.点击事件的更多相关文章
- Cocos Creator cc.Event点击触摸事件详解
cc.Event事件请不要直接创建 cc.Event 对象,因为它是一个抽象类,请创建 cc.Event.EventCustom 对象来进行派发. cc.Class({extends: cc.Comp ...
- Cocos Creator cc.Button (脚本事件内容)
cc.Class({extends: cc.Component,properties: {}, onLoad: function () { var clickEventHandler = new cc ...
- Cocos Lua的Touch 点击事件添加
两种方式: -- 触摸开始 local function onTouchBegan(touch, event) return true end -- 触摸结束 local function onTou ...
- Cocos Creator与VS Code整合代码提示问题
Cocos Creator与VS Code整合开发配置 在Cocos Creator中依次点击下面框中的菜单 VS Code工作流 配置Cocos Creator的默认编辑器 Cocos Creato ...
- <7>Cocos Creator 节点 cc.Node
1.简介 节点(cc.Node)是渲染的必要组成部分.所有需要在游戏场景中显示的内容都必须是节点或者依附于节点之上.节点负责控制显示内容的位置.大小.旋转.缩放.颜色等信息. 2.节点属性 1: na ...
- Cocos Creator 触摸点击事件
触摸事件// 使用枚举类型来注册枚举对象定义 对应的事件名 事件触发的时机cc.Node.EventType.TOUCH_START 'touchstart' 当手指触点落在目标节点区域内时cc.No ...
- cocos creator 事件
cocos creator 事件 在做一个消除类游戏时,需要对点击的方块做出响应.代码很简单,可背后的原理还多着呢. 1. 普通节点注册click事件 在cc中如果需要相应click事件,需要为该节点 ...
- Cocos Creator学习五:触摸和重力传感响应事件
1.移动设备上主要涉及触摸响应事件以及重力传感响应事件的处理. 事件主要分两类: 针对节点事件处理的节点响应事件cc.Node.EventType(主要是触摸响应事件和鼠标响应事件): 针对全局系统事 ...
- Cocos Creator学习四:按钮响应事件
1.方法一:通过编辑器对cc.Button的属性进行拖放操作进行控制 (1)创建脚本BtnClick1.js,增加btnClick1函数,然后拖放到Canvas节点中(记得拖放,否则下面步骤将找不到对 ...
随机推荐
- python输出有色记录
一.第三方模块coloredlogs # Create a logger object. import logging logger = logging.getLogger('your-module' ...
- 【资料下载区】【iCore1S相关代码、资料下载地址】更新日期2017/10/09
[iCore1S相关文档][更新中...] iCore1S原理图(PDF)下载iCore1S引脚注释(PDF)下载 [iCore1S相关例程代码][ARM][更新中...] DEMO1.0测试程序发布 ...
- comake2
http://blog.csdn.net/lsjseu/article/details/23395565 comake允许用户通过编写COMAKE文件,来帮助用户管理编译依赖以及编译环境的开发工具: ...
- go语言fallthrough的用法心得
fallthrough:Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面 ...
- 给centos7.3添加中文拼音输入法输入汉字
https://jingyan.baidu.com/article/86f4a73eaa0a6337d6526985.html
- 通用Mapper新特性:ExampleBuilder 2017年12月18日
package tk.mybatis.mapper.test.example; import org.apache.ibatis.session.SqlSession; import org.juni ...
- tensorflow中moving average的用法
一般在保存模型参数的时候,都会保存一份moving average,是取了不同迭代次数模型的移动平均,移动平均后的模型往往在性能上会比最后一次迭代保存的模型要好一些. tensorflow-model ...
- python中基本类型的连接组合和互相转换
本篇总结了一下字符串,列表,字典,元组的连接组合使用和类型的互相转换小例子,尤其列表中的extend()方法和字典中的 update方法非常的常用. 1.连接两个字符串 a = "hello ...
- 【nginx】解决Nginx重启时提示nginx: [emerg] bind() to 0.0.0.0:80错误
Nginx是一款轻量级的Web服务器,特点是占有内存少,并发能力强,因而使用比较广泛,蜗牛今天在一个VPS上重启Nginx时提示“nginx: [emerg] bind() to 0.0.0.0:80 ...
- shell 递归枚举文件并操作
递归枚举文件并操作 #!/bin/bash CURDIR=$(cd $(dirname $0); pwd) export GOPATH=$CURDIR/.. echo GOPATH=$GOPATH c ...