CocosCreator 全局Touch事件
全局的Touch事件
const{ccclass}=cc._decorator;
@ccclass
export default class GlobalTouchInput extends cc.Component{private _eventManager=cc["internal"]["eventManager"];private _touchListener:any;private start():void{ const self=this;const EventListener=cc["EventListener"];this._touchListener=EventListener.create({event:EventListener.TOUCH_ONE_BY_ONE,swallowTouches:false,owner:self.node,mask:null,onTouchBegan:self.onTouchStart,onTouchMoved:self.onTouchMoved,onTouchEnded:self.onTouchEnded,onTouchCancelled:self.onTouchCancelled});this._eventManager.addListener(this._touchListener,this.node);}private onTouchStart(touch:cc.Touch,event:cc.Event.EventTouch):boolean{cc.log("touch start");//此处必须返回true(表示接触到了节点),否则TOUCH_MOVE,TOUCH_END,TOUCH_CANCEL不触发。return true;}private onTouchMoved(touch:cc.Touch,event:cc.Event.EventTouch):void{cc.log("touch move");}private onTouchEnded(touch:cc.Touch,event:cc.Event.EventTouch):void{cc.log("touch end");}private onTouchCancelled(touch:cc.Touch,event:cc.Event.EventTouch):void{cc.log("touch cancel");}private onDestroy():void{this._eventManager.removeListener(this._touchListener,this.node);}}
touch穿过透明区域(以下代码未验证)
const {ccclass,property}=cc._decorator;@ccclass
export default class CrossTransparentTouch extends cc.Component{private start():void{this.node.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd,this)this.node["_hitTest"]=this.hitTest.bind(this);}private hitTest(point:cc.Vec2){let locationInNode=this.node.convertToNodeSpaceAR(point);let size=this.node.getContentSize();let sprite=this.node.getComponent(cc.Sprite);if(sprite){//需要在编辑设置 texture.packable 为 falselet imgObj=sprite.spriteFrame.getTexture().getHtmlElementObj();return this.onLucencyTouch(imgObj, locationInNode.x, size.height-locationInNode.y);}return false;}private onLucencyTouch(img:HTMLImageElement,x:number,y:number):boolean{let cvs=document.createElement("canvas");let ctx=cvs.getContext('2d');cvs.width=1;cvs.height=1;ctx.drawImage(img,x,y,1,1,0,0,1,1);let imgdata=ctx.getImageData(0,0,1,1);return imgdata.data[3]>0;}private onTouchEnd(eventTouch:cc.Event.EventTouch):void{console.log("touch end")}
}
CocosCreator 全局Touch事件相关推荐
- Android获取整个屏幕的Touch事件
在车载开发中,有一个常见的需求就是各种手势控制中控与仪表的交互. 我们需要获取全局的Touch事件,然后解析手势,做对应的动作.这里有个最简单的获取全局Touch事件的方法. framework 1. ...
- 移动WEB开发之JS内置touch事件[转]
iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS的浏览器应用上使用click和mouseover,因为这两个事件是为了支持鼠标点击而设计 出来的.Cli ...
- Activity Window View WindowManager关系Touch事件分发机制
http://www.cnblogs.com/linjzong/p/4191891.html https://www.cnblogs.com/kest/p/5141817.html https://b ...
- JS的Touch事件们
iphone.ipod Touch.ipad触屏时的js事件 1.Touch事件简介 pc上的web页面鼠标会产生onmousedown.onmouseup.onmouseout.onmouseove ...
- 移动端touch事件的处理
首先简单介绍一下iOS上的浏览器(这里主要指Safari)所支持的 多触式事件模型,然后将触控(Touch)这种简单的动作升级为手势(Gestrue),最后将javascript + html + ...
- Cocos Creator Touch事件与Unity3D Touch事件
Cocos Creator Touch 事件 cc.Node 有一套完整的事件监听和分发机制.在这套机制之上,提供了一些基础的节点相关的系统事件.因此,在cocos creator中touch事件是与 ...
- android调用js的touch事件吗,javascript-如何绑定Mousedown和Touchstart,但不同时响应两者? Android,JQuery...
javascript-如何绑定Mousedown和Touchstart,但不同时响应两者? Android,JQuery 在还可以在移动设备上查看并且需要在touchstart和mousedown上绑 ...
- ViewGroup的Touch事件分发(源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...
- View的Touch事件分发(二.源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...
最新文章
- 2022-2028年中国高等职业教育产业投资分析及前景预测报告
- 用NVIDIA-NGC对BERT进行训练和微调
- php编译安装memcache,ubuntu源码编译安装memcached和php-memcache 扩展
- SM37job状态意义
- javascript获取asp.net后台代码的方法
- jsp输出所有请求头的名称
- nginx ngx_http_index_module(默认初始页)
- 怎样删了系统升级服务器,如何优雅的搞垮服务器,再优雅的救活
- Nacos命名空间配置_每个人用各自自己的命名空间---SpringCloud Alibaba_若依微服务框架改造---工作笔记001
- bzoj2456: mode
- Shell 脚本进程并发进程数控制
- 德赛西威280b升级_车载导航刷机:德赛西威NAV280H固件升级
- [XJTUSE编译原理] 第三章 上下文无关文法
- macOS - 安装 swig 、PCRE
- 十八、备忘录模式——SL大法,读档的实现
- c语言第七章函数笔记,我的C语学习笔记-C语言教程(七).doc
- 智能驾驶软件测试,智能驾驶实车测试系统-VDAS
- 能定位的不仅GPS,还有它!
- cshop是什么开发语言_2019编程语言哪一款最适合你?
- C#实战之CAD二次开发003:插入文字和插入图块
热门文章
- 这些使用微信的小技巧建议收藏
- ajax asmx 404,ajax webservice asmx 401未经授权的错误(ajax webservice asmx 401 unauthorized error)...
- IT培训整体趋冷,高端培训热度不减
- MFC重载鼠标停留WM_MOUSEHOVER和离开WM_MOUSELEAVE消息
- 使用 HSV 颜色模型和 openCV 构建昼夜分类器
- 三国塔防魏传java_三国塔防魏传常见武将配置
- 什么是虚拟人直播?虚拟人直播怎么做?虚拟人直播怎么赚钱?附虚拟人直播教程
- iphone7计算机隐藏,iphone7的隐藏功能有哪些 iphone7的隐藏功能详情介绍
- 浅谈机器学习框架和算法
- Android O强制修改安兔兔跑分中的参数