var self = this;
this.touchListener = cc.EventListener.create({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
/*
可选event类型列表: cc.EventListener.TOUCH_ONE_BY_ONE (单点触摸)
cc.EventListener.TOUCH_ALL_AT_ONCE (多点触摸)
cc.EventListener.KEYBOARD (键盘)
cc.EventListener.MOUSE (鼠标)
cc.EventListener.ACCELERATION (加速计)
cc.EventListener.CUSTOM (自定义) */
swallowTouches: true,  // 设置是否吞没事件,在 onTouchBegan 方法返回 true 时吞掉事件,不再向下传递。
onTouchBegan:function(touch, event) //实现 onTouchBegan 事件处理回调函数
{ return self.checkHit(touch.getLocation()); //传递坐标
}, onTouchMoved:function(touch, event) //实现onTouchMoved事件处理回调函数, 触摸移动时触发
{
self.movePickedHitTile(touch.getLocation());
return true;
}, onTouchEnded:function(touch, event)// 实现onTouchEnded事件处理回调函数
{
self.dropTile(touch.getLocation());
return true;
}
}); cc.eventManager.addListener(this.touchListener, node);  // 添加监听器到管理器
/*
这里的cc.eventManager 是一个单例对象,可直接拿来使用。
通过调用 addListener 函数可以将listener加入到管理器中。
需要注意的是第二个参数
如果传入的是一个Node对象,则加入的是SceneGraphPriority(精灵以显示优先级) 类型的listener
如果是一个数值类型的参数,则加入到的是FixedPriority 类型的listener。
*/

onTouchBegan:
 checkHit:function(event)
{
  var target = event.getCurrentTarget(); // 获取事件所绑定的 target, 通常是cc.Node及其子类 // 获取当前触摸点相对于按钮所在的坐标
var locationInNode = target.convertToNodeSpace(touch.getLocation());
var s = target.getContentSize();
var rect = cc.rect(0, 0, s.width, s.height); if (cc.rectContainsPoint(rect, locationInNode)) { // 判断触摸点是否在按钮范围内
console.log("sprite began... x = " + locationInNode.x + ", y = " + locationInNode.y);
target.opacity = 180;
return true;
}
return false;
}

onTouchMoved:
 movePickedHitTile:function(event)
{
  var target = event.getCurrentTarget();
var delta = touch.getDelta(); //获取事件数据: delta
target.x += delta.x;
target.y += delta.y;
},


onTouchEnded:
 dropTile:function(pt)
{
// this.showDiscardTip(false);
//
// this.pickedTile.setScale(1);
//
// //出牌
// if(this.discardable(pt))
// {
// this.discard();
// }
// else
// {
// if(this.hitTestTile(this.hitTile, pt))
// {
// var tileSize = mb.getTileSize(this.hitTile.pos, this.hitTile.state);
// var ptWorld = this.hitTile.convertToWorldSpaceAR(cc.p(0, 0));
// this.pickedTile.x = ptWorld.x;
// this.pickedTile.y = ptWorld.y + tileSize.height / 3;
// }
// else
// {
// mb.TilePool.getInstance().restoreTile(this.pickedTile);
// this.pickedTile = null;
//
// this.hitTile.setVisible(true);
// this.hitTile = null;
// }
// } },
												

cocos2d JS touch屏幕点击事件监听 cc.EventListener.TOUCH的更多相关文章

  1. Ext JS 5的声明式事件监听

    在前文<在Ext JS 5使用ViewControllers>中,简单的介绍了Ext JS 5的一项重要改进——声明式事件监听.在本文,将深度探讨如何使用声明式事件监听啦简化应用程序的视图 ...

  2. spring事件监听(eventListener)

    原理:观察者模式 spring的事件监听有三个部分组成,事件(ApplicationEvent).监听器(ApplicationListener)和事件发布操作. 事件 事件类需要继承Applicat ...

  3. Android实战简易教程-第十五枪(实现ListView中Button点击事件监听)

    1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...

  4. RecycleView 点击事件监听

    1.定义RecycleView 监听接口类 1 package com.example.*****; 2 3 import android.view.View; 4 5 public interfac ...

  5. 【winform】基于UserControl实现webBrower组件时html页面元素加载及onclick事件监听实现

    [背景]基于System.Windows.Forms.UserControl实现的webBrower组件在html内使用window.external调用winform事件失败. [解决思路]借助wi ...

  6. jQuery EasyUI/TopJUI输入框事件监听

    jQuery EasyUI/TopJUI输入框事件监听 代码如下: <div data-toggle="topjui-panel" title="" da ...

  7. NavigationView的头部的事件监听

    现在App的UI设计中Drawerlayout+NavigationView是一个比较常用的设计了,而以前我一般只是在Navigation中的menu(即下部的item中)添加事件监听,而今天碰到一个 ...

  8. [JS]笔记12之事件机制--事件冒泡和捕获--事件监听--阻止事件传播

    -->事件冒泡和捕获-->事件监听-->阻止事件传播 一.事件冒泡和捕获 1.概念:当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,点击子元素时,父元素的oncl ...

  9. [No00006A]Js的addEventListener()及attachEvent()区别分析【js中的事件监听】

    1.添加时间监听: Chrom中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target ...

随机推荐

  1. WPF 依赖属性和附加属性

    依赖属性: 依赖属性就是自己没有值,通过Binding从数据源获得值,就是依赖在别人身上,拥有依赖属性的对象称为依赖对象. 依赖属性的值存在哪里? 在WPF运行时,维护了一个全局的Hashtable存 ...

  2. *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED

    *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED 在软件已经执行破解仍然出现,是因为工程是破解前建立的,要先执行 ...

  3. ubuntu下pig报错ERROR 2999: Unexpected internal error. Failed to create DataStorage的解决

    2019-03-04 00:10:03,998 [main] ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. Fa ...

  4. c++中new的三种用法详细解析

    转载至: http://www.jb51.net/article/41524.htm 以下的是对c++中new的三种使用方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 一. ...

  5. 抽屉之Tornado实战(5)--点赞与评论树

    点赞 点赞的过程:数字增加,并在后台点赞表记录数据 需要发过去的数据:用户id,新闻id 用户id从session里获得,那新闻id怎么获取呢?这想到分页是循环新闻列表来展示内容,循环的新闻id可以做 ...

  6. 实验一:Java开发环境的熟悉

    实验一:Java开发环境的熟悉 一.实验一-1 在码云中建立"20165317exp1"的项目. 从git中下载该项目. 在"20165317exp1"目录下建 ...

  7. 使用Git,如何忽略不需要上传的文件(配置文件)

    步骤1:在目录下,选择GIt Bash Here 2.输入命令 : git update-index --assume-unchanged 文件名 3.再输入指令 git  status 查看修改文件 ...

  8. 'react-scripts' is not recognized as an internal or external command

    React项目在执行npm start的时候报下面的错误: 解决办法:把项目目录中node_modules文件夹删掉,重新npm install一下,然后再执行npm start

  9. 【JMeter】插件安装

    安装插件的方法有两种,一种是传统的方式,即官网下载,本地配置,重启jmeter.现在有一种快捷的方法可以自定义安装插件-插件管理器 JMeter 插件管理器的使用方法很简单:不要手动安装各种插件,它提 ...

  10. 接口测试工具-Jmeter使用笔记(一:运行一个HTTP请求)

    博主自从毕业从事软件测试行业距今一年半时间,大多数时间都在跟各种API打交道,使用过的接口测试工具也有许多,本文记录下各工具的使用心得,以及重点介绍我在工作中是如何使用Jmeter做测试的,都是在wi ...