全局的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事件相关推荐

  1. Android获取整个屏幕的Touch事件

    在车载开发中,有一个常见的需求就是各种手势控制中控与仪表的交互. 我们需要获取全局的Touch事件,然后解析手势,做对应的动作.这里有个最简单的获取全局Touch事件的方法. framework 1. ...

  2. 移动WEB开发之JS内置touch事件[转]

    iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS的浏览器应用上使用click和mouseover,因为这两个事件是为了支持鼠标点击而设计 出来的.Cli ...

  3. Activity Window View WindowManager关系Touch事件分发机制

    http://www.cnblogs.com/linjzong/p/4191891.html https://www.cnblogs.com/kest/p/5141817.html https://b ...

  4. JS的Touch事件们

    iphone.ipod Touch.ipad触屏时的js事件 1.Touch事件简介 pc上的web页面鼠标会产生onmousedown.onmouseup.onmouseout.onmouseove ...

  5. 移动端touch事件的处理

    首先简单介绍一下iOS上的浏览器(这里主要指Safari)所支持的 多触式事件模型,然后将触控(Touch)这种简单的动作升级为手势(Gestrue),最后将javascript + html +  ...

  6. Cocos Creator Touch事件与Unity3D Touch事件

    Cocos Creator Touch 事件 cc.Node 有一套完整的事件监听和分发机制.在这套机制之上,提供了一些基础的节点相关的系统事件.因此,在cocos creator中touch事件是与 ...

  7. android调用js的touch事件吗,javascript-如何绑定Mousedown和Touchstart,但不同时响应两者? Android,JQuery...

    javascript-如何绑定Mousedown和Touchstart,但不同时响应两者? Android,JQuery 在还可以在移动设备上查看并且需要在touchstart和mousedown上绑 ...

  8. ViewGroup的Touch事件分发(源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...

  9. View的Touch事件分发(二.源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...

最新文章

  1. 2022-2028年中国高等职业教育产业投资分析及前景预测报告
  2. 用NVIDIA-NGC对BERT进行训练和微调
  3. php编译安装memcache,ubuntu源码编译安装memcached和php-memcache 扩展
  4. SM37job状态意义
  5. javascript获取asp.net后台代码的方法
  6. jsp输出所有请求头的名称
  7. nginx ngx_http_index_module(默认初始页)
  8. 怎样删了系统升级服务器,如何优雅的搞垮服务器,再优雅的救活
  9. Nacos命名空间配置_每个人用各自自己的命名空间---SpringCloud Alibaba_若依微服务框架改造---工作笔记001
  10. bzoj2456: mode
  11. Shell 脚本进程并发进程数控制
  12. 德赛西威280b升级_车载导航刷机:德赛西威NAV280H固件升级
  13. [XJTUSE编译原理] 第三章 上下文无关文法
  14. macOS - 安装 swig 、PCRE
  15. 十八、备忘录模式——SL大法,读档的实现
  16. c语言第七章函数笔记,我的C语学习笔记-C语言教程(七).doc
  17. 智能驾驶软件测试,智能驾驶实车测试系统-VDAS
  18. 能定位的不仅GPS,还有它!
  19. cshop是什么开发语言_2019编程语言哪一款最适合你?
  20. C#实战之CAD二次开发003:插入文字和插入图块

热门文章

  1. 这些使用微信的小技巧建议收藏
  2. ajax asmx 404,ajax webservice asmx 401未经授权的错误(ajax webservice asmx 401 unauthorized error)...
  3. IT培训整体趋冷,高端培训热度不减
  4. MFC重载鼠标停留WM_MOUSEHOVER和离开WM_MOUSELEAVE消息
  5. 使用 HSV 颜色模型和 openCV 构建昼夜分类器
  6. 三国塔防魏传java_三国塔防魏传常见武将配置
  7. 什么是虚拟人直播?虚拟人直播怎么做?虚拟人直播怎么赚钱?附虚拟人直播教程
  8. iphone7计算机隐藏,iphone7的隐藏功能有哪些 iphone7的隐藏功能详情介绍
  9. 浅谈机器学习框架和算法
  10. Android O强制修改安兔兔跑分中的参数