egret.Event触摸事件与事件机制

原创 2018年04月17日 20:56:47

事件机制包含4个步骤:注册侦听器,发送事件,侦听事件,移除侦听器。这四个步骤是按照顺序来执行的。

egret.TouchEvent.TOUCH_TAP                 //触摸事件
//注册侦听函数的定义
public addEventListener(type:string, listener:Function, thisObject:any, useCapture:boolean = false, priority:number = 0)
//侦听器的优先级
public addEventListener(type:string, listener:Function, thisObject:any, useCapture:boolean = false, priority:number = 0)
事件发送者.addEventListener(事件类型, 侦听器, this);            //注册侦听器
事件发送者.removeEventListener(事件类型, 侦听器, this);         //删除侦听器
事件发送者.hasEventListener(事件类型);                         //检查侦听器

以下来自官方文档
TouchEvent 是一个常用的功能,用于监听触摸事件的不同阶段。一个点击的流程一般会触发3个 touch 事件:TouchBegin 触摸开始,TouchEnd 触摸结束,TouchTap 点击。

在 Egret 版本 3.0.1 中,我们新增了一个 TouchCancel 事件,顾名思义就是取消触摸。这个功能目前主要用于 EUI 中,比如 Scroller 滚动列表,当你的手点中它后,首先抛出一个 TouchBegin,如果此时没有滚动,直接离开屏幕,那么还是原来标准的流程,抛出 TouchEnd 和 TouchTap。但是当你滚动它以后,则会抛出一个 TouchCancel 事件,而后续的 TouchEnd 和 TouchTap 事件就不会被触发了。

var scroller = new eui.Scroller();
var list = new eui.List();  
list.itemRendererSkinName = `
        <e:Skin states="up,down,disabled" minHeight="50" minWidth="100" xmlns:e="http://ns.egret.com/eui"> <e:Image width="100%" height="100%" scale9Grid="1,3,8,8" alpha.disabled="0.5"
                     source="resource/button_up.png"
                     source.down="resource/button_down.png"/> <e:Label text="{data}" top="8" bottom="8" left="8" right="8"
                     textColor="0xFFFFFF" verticalAlign="middle" textAlign="center"/> </e:Skin>`
var ac = new eui.ArrayCollection([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
list.dataProvider = ac;
scroller.viewport = list;
scroller.height = 200;
this.addChild(scroller);

scroller.addEventListener(egret.TouchEvent.TOUCH_BEGIN,()=>{console.log("111 Scroller Begin")},this);
list.addEventListener(egret.TouchEvent.TOUCH_BEGIN,()=>{console.log("111 List Begin")},this);

scroller.addEventListener(egret.TouchEvent.TOUCH_END,()=>{console.log("222 Scroller END")},this);
list.addEventListener(egret.TouchEvent.TOUCH_END,()=>{console.log("222 List END")},this);

scroller.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{console.log("33 Scroller Tap")},this);
list.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{console.log("33 List Tap")},this);

scroller.addEventListener(egret.TouchEvent.TOUCH_CANCEL,()=>{console.log("44 Scroller cancel")},this);
list.addEventListener(egret.TouchEvent.TOUCH_CANCEL,()=>{console.log("44 List cancel")},this);
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/centor/article/details/79980684

COCOS-3.X事件分发机制-触摸事件

在cocos中,触摸事件分为单点触摸和多点触摸,其中多点触摸主要是针对移动设备的,但是利用cocos的事件分发机制来处理触摸事件,其大致流程几乎是一致的。 一、单点触摸 1、cocos2.x的处理方式...
  • u011787119
  • u011787119
  • 2015-12-06 23:38:05
  • 932

android按键事件和触屏事件(2)-带你从源码的角度彻底理解

转载自郭大神的博客, 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9097463 其实我一直准备写一篇关于Android事件...
  • u014315849
  • u014315849
  • 2016-01-06 14:45:56
  • 796

quick中触摸事件响应机制

显示层级 在 Cocos2d-x 里,整个游戏的画面是由一系列的 Scene, Node, Sprite, Layer 等对象构成的。而所有这些对象都是从 Node 这个类继承而来。我们可以将 No...
  • Code_Nice
  • Code_Nice
  • 2015-09-09 11:18:58
  • 429

cocos2dx学习之路----第九篇(深入理解单点触摸的事件机制)

上一篇我们简单接触了关于单点触摸的实现。 这一篇我们继续进一步的理解单点触摸的事件分发的优先级问题。...
  • qq_30501909
  • qq_30501909
  • 2016-07-27 17:22:21
  • 1300

egret事件模型

// 定义了一个事件派发类 class Dispatcher extends egret.EventDispatcher {     static lock: boolean = true;  ...
  • qq_38985747
  • qq_38985747
  • 2017-05-31 12:04:52
  • 405

Android6.0触摸事件分发机制解读

本篇博文是Android触摸事件分发机制系列博文的第一篇,带领大家从全局掌握Android触摸事件分发机制。特别声明的是,本源码解读是基于最新的Android6.0版本。为什么要解读触摸事件分发机制1...
  • mynameishuangshuai
  • mynameishuangshuai
  • 2016-10-24 18:00:17
  • 8874

桌面应用图标效果

  • 2013年08月12日 11:30
  • 1.02MB
  • 下载

Activity触摸事件的分发机制

所谓Android的触摸事件其实就是Android中的MotionEvent对象,即当一个MotionEvent产生之后,系统需要吧这个事件传递给一个具体的View,而这个传递的过程就是分发的过程。 ...
  • u011068996
  • u011068996
  • 2015-12-19 15:51:59
  • 1125

Android 触摸事件分发和拦截机制

Android 开发中,很多情况下,我们需要对触摸事件进行处理,但是当面对错综复杂的 Android 布局时,我们如何准确的将一个用户的触摸事件传递到对应的控件中并让它进行处理呢?首先,我们先假设这里...
  • Hacker_ZhiDian
  • Hacker_ZhiDian
  • 2017-03-21 21:57:52
  • 1276

cocos2d-x 事件分发机制 ——触摸事件监听

cocos2d-x 3.0 出来已经好久了,也已经用3.0写了几个小游戏,感觉3.0的事件触发机制太赞了,随这里总结一下,也算是对知识的一种回忆和加深理解。 3.0的事件分发机制中,需要也仅仅需要通过...
  • u013599970
  • u013599970
  • 2014-07-27 08:20:27
  • 3702
收藏助手
不良信息举报
您举报文章:egret.Event触摸事件与事件机制
举报原因:
原因补充:

(最多只允许输入30个字)