cc.Node—事件响应
触摸事件
1: 触摸事件类型: START, MOVED, ENDED(物体内), CANCEL(物体外);
2: 监听触摸事件: node.on(类型, callback, target(回掉函数的this), [useCapture]);
3: 关闭触摸事件: node.off(类型, callback, target(回掉函数的this), [useCapture]);
4: targetOff (target): 移除所有的注册事件;
5: 回掉函数的参数设置 function(t(cc.Touch))
6: cc.Touch: getLocation返回触摸的位置;getDelta返回距离上次的偏移;
7: cc.Event: stopPropagationImmediate/stopPropagation 停止事件的传递;
8: 事件冒泡: 触摸事件支持节点树的事件冒泡,会从当前前天往上一层一层的向父节点传送;
9: 完成物体跟随手指触摸的案例;
/*
(1) 监听对应的触摸事件: 像引擎底层注册一个回掉函数,当有触摸事件发生的时候掉这个回掉函数;
cc.Node.EventType.TOUCH_START: 触摸开始
cc.Node.EventType.TOUCH_MOVE: 触摸移动
cc.Node.EventType.TOUCH_END: 触摸结束, (物体内部结束)
cc.Node.EventType.TOUCH_CANCEL: 触摸结束, (物体外部结束) (2) 回掉函数的格式 function(t) --> cc.Touch对象触摸事件对象 {触摸信息,事件信息}
call --> this, this指向谁就是这个target;你要绑那个对象作为你回掉函数的this, 可以为空
function () {}.bind(this);
*/
var item = this.node.getChildByName("item"); this.node.on(cc.Node.EventType.TOUCH_START,
function(t) {
console.log("cc.Node.EventType.TOUCH_START called,", t.type);
// this 函数里面的this,
// 停止事件传递
t.stopPropagationImmediate();
}, item); this.node.on(cc.Node.EventType.TOUCH_MOVE, this.on_touch_move, item); this.node.on(cc.Node.EventType.TOUCH_END,
function(t) {
console.log("cc.Node.EventType.TOUCH_END called,", t.type);
},
item); this.node.on(cc.Node.EventType.TOUCH_CANCEL,
function(t) {
console.log("cc.Node.EventType.TOUCH_CANCEL called,", t.type);
},
item); // 移除
this.node.off(cc.Node.EventType.TOUCH_MOVE, this.on_touch_move, this);
// 移除target上所有的注册事件
this.node.targetOff(this);
父级节点监听事件
onLoad: function () {
this.node.on("pkg_event", function(e){
console.log("父级监听事件", e.type, e.detail);
}, this);
按键监听
// (1)向引擎注册一个事件类型的回掉函数,
// (2) 按键时间的类型: cc.SystemEvent.EventType.KEY_DOWN, cc.SystemEvent.EventType.KEY_UP;
// (3) 配置的回掉函数: function(event) {} target, 目标
// (4) 每一个按键,都会对应一个按键码, space, A, B, C, event对象 event.keyCode;
// (5) cc.systemEvent 小写开头,不是大写, 大写SystemEvent类, systemEvent 全局一个实例
onLoad: function () {
// console.log(cc.systemEvent);
// 按键被按下
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) {
console.log('key down:%s', event.keyCode);
}, on_key_up: function (event) {
console.log('key up:', event.keyCode);
},
自定义事件
onLoad: function () {
console.log('this is onload..');
// 接收者
// 事件类型,是你自定义的字符串;
// 回掉函数: function(e) {} e--> cc.Event.EventCustom的实例
this.node.on("pkg_event", function(e){
console.log("自定义事件", e.detail);
}, this);
// end this.node.emit("pkg_event", { blake: "发射" }); }, start: function () {
console.log('start...');
// 派发者,只能传递给自己,不会向上传递
this.node.emit("pkg_event", {blake: "发射狗子"}); // 派送者,不只是发给自己,发给我们这个体系;
// true/false, true向上传递, false不向上传递
var e = new cc.Event.EventCustom("pkg_event", false);
e.detail = {blake: "派送分发"};
this.node.dispatchEvent(e);
},
cc.Node—事件响应的更多相关文章
- Cocos Creator cc.Node.点击事件
触摸事件 1.触摸事件的类型:START触摸启动,MOVED移动,ENDED弹起来,CANCEL取消; ENDED和CANCEL区别是ENDED物体内弹起来,CANCEL是在物体外范围弹起. 2.监听 ...
- cc.Node—场景树
对于cc.Node我分了四个模块学习: 1.场景树,2.事件响应,3.坐标系统,4.Action的使用:在此记录经验分享给大家. 场景树 1: creator是由一个一个的游戏场景组成,通过代码逻辑来 ...
- 浅谈JavaScript的事件响应
原文出处: Christian Heilmann 译文出处:Chajn Science 每当猴子们问我JavaScript和DOM里啥东西最牛逼时,我都会一巴掌打回去:卧槽还用问么当然是事件响应了 ...
- cc.Node 的坐标空间与ACTION的学习
1.创建二维的向量坐标 //创建向量坐标方法一 let new_pos1 = new cc.Vec2(100, 100); //创建向量坐标方法二 let new_pos2 = cc.v2(200, ...
- C# .net微信开发,开发认证,关注触发消息,自动应答,事件响应,自定义菜单
成为开发者 string[] ArrTmp = { "token", Request["timestamp"], Request["nonce&quo ...
- (转)C# .net微信开发,开发认证,关注触发消息,自动应答,事件响应,自定义菜单
原文地址:http://www.cnblogs.com/qidian10/p/3492751.html 成为开发者 string[] ArrTmp = { "token", Req ...
- node事件循环
Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发. Node.j ...
- laya的skeleton骨骼动画事件响应问题
创建skeleton节点并绑定MOUSE_DOWN事件后,却始终无法响应.经测试发现如下: skeleton节点在load结束后,其bounds反映了总体的宽高,但是width与height却为0,而 ...
- cc.Node—坐标系统
cc.Vec21: cc.Vec2 二维向量坐标, 表结构{x: 120, y: 120}; cc.v2(x, y) 创建一个二维向量 cc.p() 创建一个二外向量;2: cc.pSub: 向量相减 ...
随机推荐
- Vijos 1523 贪吃的九头龙 【树形DP】
贪吃的九头龙 背景 安徽省芜湖市第二十七中学测试题 NOI 2002 贪吃的九头龙(dragon) Description:OfficialData:OfficialProgram:Converted ...
- 4.7.4 Constructing LALR Parsing Tables
4.7.4 Constructing LALR Parsing Tables We now introduce our last parser construction method, the LAL ...
- Windows路径
绝对路径 是从盘符开始的路径,形如 C:\windows\system32\cmd.exe 相对路径 是从当前目录开始的路径,假如当前目录为C:\windows 要描述上述路径,只需输入 system ...
- ZOJ1081 Points Within 点和多边形的位置关系
ZOJ1081 给一个点和一个多边形 判断点在多边形内(边上)还是在多边形外 在多边形外的点引一条射线必然穿过多边形的两条边 而在多边形内的点则不一定. 当然凹多边形有特殊情况 但是总能找到对应位置关 ...
- 杂项-Java:MyBatis
ylbtech-杂项-Java:MyBatis 1.返回顶部 1. MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundatio ...
- bzoj 1093: [ZJOI2007]最大半连通子图【tarjan+拓扑排序+dp】
先tarjan缩成DAG,然后答案就变成了最长链,dp的同时计数即可 就是题面太唬人了,没反应过来 #include<iostream> #include<cstdio> #i ...
- P3174 [HAOI2009]毛毛虫(树形dp)
P3174 [HAOI2009]毛毛虫 题目描述 对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大.例如下图左边的树(图 1 )抽出一部分就变成了右边 ...
- P4576 [CQOI2013]棋盘游戏
传送门 很显然,除非白子和黑子相邻,否则必然是黑子获胜虽然我并没有看出来 那么现在对黑子来说它要尽可能快的赢,对白子它要多苟一会儿 然后就是这个叫做对抗搜索的东西了 //minamoto #inclu ...
- akka监控框架设计
本博客介绍一种AOP.无侵入的akka监控方案,方便大家在生产使用akka的过程中对akka进行监控. 对于自身javaer来说,AOP三个字母基本就解释清楚了akka监控框架的原理.哈哈哈,不过我这 ...
- ASP.Net 知识点总结(五)
1.传入某个属性的set方法的隐含参数的名称是什么?value,它的类型和属性所声名的类型相同.2.如何在C#中实现继承? 在类名后加上一个冒号,再加上基类的名称.3.C#支持多重继承么? 不支持.可 ...