cocos2d JS touch屏幕点击事件监听 cc.EventListener.TOUCH
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的更多相关文章
- Ext JS 5的声明式事件监听
在前文<在Ext JS 5使用ViewControllers>中,简单的介绍了Ext JS 5的一项重要改进——声明式事件监听.在本文,将深度探讨如何使用声明式事件监听啦简化应用程序的视图 ...
- spring事件监听(eventListener)
原理:观察者模式 spring的事件监听有三个部分组成,事件(ApplicationEvent).监听器(ApplicationListener)和事件发布操作. 事件 事件类需要继承Applicat ...
- Android实战简易教程-第十五枪(实现ListView中Button点击事件监听)
1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...
- RecycleView 点击事件监听
1.定义RecycleView 监听接口类 1 package com.example.*****; 2 3 import android.view.View; 4 5 public interfac ...
- 【winform】基于UserControl实现webBrower组件时html页面元素加载及onclick事件监听实现
[背景]基于System.Windows.Forms.UserControl实现的webBrower组件在html内使用window.external调用winform事件失败. [解决思路]借助wi ...
- jQuery EasyUI/TopJUI输入框事件监听
jQuery EasyUI/TopJUI输入框事件监听 代码如下: <div data-toggle="topjui-panel" title="" da ...
- NavigationView的头部的事件监听
现在App的UI设计中Drawerlayout+NavigationView是一个比较常用的设计了,而以前我一般只是在Navigation中的menu(即下部的item中)添加事件监听,而今天碰到一个 ...
- [JS]笔记12之事件机制--事件冒泡和捕获--事件监听--阻止事件传播
-->事件冒泡和捕获-->事件监听-->阻止事件传播 一.事件冒泡和捕获 1.概念:当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,点击子元素时,父元素的oncl ...
- [No00006A]Js的addEventListener()及attachEvent()区别分析【js中的事件监听】
1.添加时间监听: Chrom中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target ...
随机推荐
- 电子产品使用感受之--Windows 10 小米笔记本Air HDMI转VGA无信号问题
最近一直通过HDMI转VGA线缆链接我的戴尔P2314H显示器,前天睡觉前,看到电脑上英伟达显卡推了驱动更新,顺手更新了一下,就去睡觉了,转天晚上再用,HDMI接口就没有信号了,上网查了一些信息,获知 ...
- VMware与Centos系统安装 和重置root密码
VMware与Centos系统安装 今日任务 1.Linux发行版的选择 2.vmware创建一个虚拟机(centos) 3.安装配置centos7 4.xshell配置连接虚拟机(centos) ...
- 如何使用IcoMoon字体图标
如何使用IcoMoon字体图标 一,字体图标工具: 1.登录字体图标网站:https://icomoon.io/app/#/select 2.Svg在线编辑工具:https://c.runoob.co ...
- 查询自己的apple购买历史
https://secure1.store.apple.com/cn/order/list
- layer开启与关闭加载层
// 开启加载层 layer.load(2, { shade: [0.6, '#fff'], content: '数据加载中...', success: function (layero) { lay ...
- CORS跨域-Nginx使用方法(Access-Control-Allow-Origin错误提示)
问题说明 当出现上图这个的时候,是访问请求外域URL无法访问,浏览器认为访问外域URL不安全,导致访问不了简称跨域问题.而这上面出现一句很重要的话“NO Access-Control-Allow-Or ...
- MySQL transaction
MySQL transaction(数据库的事务) 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作. 要么完全执行,要么完全地不执行. ACID 事务 ...
- 【编译原理】c++实现自下而上语法分析器
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- [dpdk] dpdk编译成动态库使用 -- PCI port自动发现与pmd动态加载
1. 修改配置文件 .conf, 设置如下变量的值. [root@D129 x86_64-native-linuxapp-gcc]# cat dpdk/x86_64-native-linuxapp- ...
- [skill][c] *(char**)
/* scmp: string compare of *p1 and *p2 */ int scmp(const void *p1, const void *p2) { char *v1, *v2; ...