cocos creator 触摸事件官方案例

cocos creator 触摸事件官方案例

1、官方示例;

2、对官方示例的总结:

(1)介绍了鼠标事件和触摸事件的类型,这里主要关注的是在移动端和PC端都可以触发的触摸事件。

(2)节点事件的派发:a.捕获阶段,从根节点至子节点;b.目标触发阶段,在目标节点(如果是触摸事件,即在被触摸到的节点上触发);c.冒泡传递阶段:由目标节点逐级向父节点冒泡传递。

(3)propagationStopped 与preventSwallow 的用法。

3、补充:

(1)关于在捕获阶段或目标阶段注册事件的区别。默认情况下,触摸事件注册在节点的目标触发阶段,即被点到的目标节点的触发顺序高于其父节点。

但特殊情况下,例如ScrollView,父节点的触摸事件注册在捕获阶段,即使触摸到的是子节点,父节点也会优先触发。

为什么ScrollView需要如此设计?因为作为一个可以滑动的列表,ScrollView的子节点是其上面的子项。如果ScrollView的触摸事件注册在目标触发阶段,当其子节点接收到触摸事件后,将propagationStopped设置为true,则ScrollView无法触发该事件,也就是无法实现滑动的功能。而将父节点的触摸事件注册在捕获阶段,可以保证父节点一定先于它的任何子节点触发该事件。

(2)propagationStopped 与preventSwallow的区别:propagationStopped 控制事件是否停止传递,需要在父子节点关系中才生效。preventSwallow控制是否吞噬节点,与节点的父子关系无关。

注意:以下表格均以触摸事件注册在目标阶段为前提。

a.有节点A和节点B,节点B是节点A的子节点。

节点B的propagationStopped /触摸区域位置truefalse
在A内 且 在B内A不触发;B触发A触发;B触发
在A内 不在B内A触发;B不触发A触发;B不触发
不在A内 在B内A不触发;B触发A触发;B触发

b.节点A和节点B同级,节点B的层级在节点A之上。

节点B的preventSwallow/触摸区域位置truefalse
在A内 且 在B内A不触发;B触发A触发;B触发
在A内 不在B内A触发;B不触发A触发;B不触发
不在A内 在B内A不触发;B触发A不触发;B触发

c.节点B是节点A的子节点。如果节点B的propagationStopped和preventSwallow同时为false,当触摸区域在节点A内且在节点B内时,节点A的触摸事件会触发两次;若节点B的propagationStopped和preventSwallow同时为true,当触摸区域在节点A内且在节点B内时,节点A的触摸事件不被触发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用MATLAB符号工具建立机器人的动力学模型

目录 介绍代码功能演示拉格朗日方法回顾求解符号表达式数值求解 介绍 开发机器人过程中经常需要用牛顿-拉格朗日法建立机器人的动力学模型,表示为二阶微分方程组。本文以一个二杆系统为例,介绍如何用MATLAB符号工具得到微分方程表达式,只需要…

Mongodb入门到放弃

Mongodb分片概括 分片在多台服务器上分布数据的方法, Mongodb使用分片来支持具有非常大的数据集和高吞吐量的操作的部署 具有大数据集和高吞吐量应用程序的数据库系统,可以挑战单台服务器的容量。 例如,高查询率可以耗尽服务器的cpu容量&…

SpringAi整合大模型(进阶版)

进阶版是在基础的对话版之上进行新增功能。 如果还没弄出基础版的,请参考 https://blog.csdn.net/weixin_54925172/article/details/144143523?sharetypeblogdetail&sharerId144143523&sharereferPC&sharesourceweixin_54925172&spm1011.2480.30…

Android电视项目焦点跨层级流转

1. 背景 在智家电视项目中,主要操作方式不是触摸,而是遥控器,通过Focus进行移动,确定点击进行的交互,所以在电视项目中焦点、选中、确定、返回这几个交互比较重要。由于电视屏比较大,在一些复杂页面中会存…

Mysql高可用架构方案

Mysql 介绍 Mysql是典型的开源关系型数据库,是许多网站、应用程序、企业软件产品的首选数据库。 Mysql特性: 易于使用,功能强大,支持事务、触发器、存储过程管理工具多种多样且功能丰富可以作为千万级数据管理的大型数据库采用…

yolo辅助我们健身锻炼

使用软件辅助健身能够大大提升运动效果并帮助你更轻松地达成健身目标。确保每次锻炼都更加高效且针对性强,精确记录你的训练进度,帮助你更清晰地看到自己的进步,避免无效训练。 借助YOLO11的尖端计算机视觉技术,跟踪和分析锻炼变得异常简单。它可以无缝检测和监控多种锻炼…

Flume 与 Kafka 整合实战

目录 一、Kafka 作为 Source【数据进入到kafka中,抽取出来】 (一)环境准备与配置文件创建 (二)创建主题 (三)测试步骤 二、Kafka 作为 Sink数据从别的地方抽取到kafka里面】 (…

SRS搭建直播推流服务

学习链接 5分钟教你搭建SRS流媒体服务器 - B站视频 SRS Stack 入门B站合集视频 - SRS官方教程 SRS官网 SRS官网文档 ossrs/srs github SRS for window - 可以安装windows版本的srs,SRS 5.0.89正式支持Windows,每个5.0的版本都会提供安装包 文章目录…

css—轮播图实现

一、背景 最近和朋友在一起讨论的时候,我们提出了这样的一个提问,难道轮播图的效果只能通过js来实现吗?经过我们的一系列的争论,发现了这是可以通过纯css来实现这一效果的,CSS轮播图也是一种常见的网页展示方式&#x…

nacos安装部署

nacos安装部署 1.安装nacos 1.安装nacos nacos的安装很简单下载后解压启动即可,但是在启动前请确保jdk环境正常; 1.首先我们要下载nacos安装包:可以到官网下载,注意我这里使用的是2.1.0版本; 2.下载完成后&#xff0…

CTF-RE: STL逆向 [NewStarCTF 2023 公开赛道 STL] WP

多看看STL题就会了,很简单 int __fastcall main(int argc, const char **argv, const char **envp) {__int64 v3; // rbx__int64 v4; // raxchar v5; // bl_BYTE *v6; // rax_QWORD *v7; // rax__int64 v8; // rax__int64 v9; // raxint i; // [rsp0h] [rbp-250h]int j; // [r…

tomcat 8.5.35安装及配置

安装包地址: 1.Index of /dist/tomcat/tomcat-8/v8.5.35/binhttps://archive.apache.org/dist/tomcat/tomcat-8/v8.5.35/bin/ 2.通过网盘分享的文件:tomcat 链接: https://pan.baidu.com/s/1z9bD4rIuIRvzQ4okm3iRzw?pwdp24p 提取码: p24p 3.通过官网…

YOLO系列论文综述(从YOLOv1到YOLOv11)【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】

YOLOv9 1 摘要2 改进点3 网络架构 YOLO系列博文: 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇:YOLO系列论文、代码和主要优缺点汇总】【第3篇:YOLOv1——YOLO的开山之作】【第4篇:YOLOv2—…

机器学习提高电子病历主要诊断编码正确率的路径分析

摘要 本研究探讨机器学习在强化病历书写质量和提高主要诊断编码正确率方面的应用。介绍了基于机器学习的病历质量分析方法、AI病历质控应用、智能预问诊系统和诊室听译机器人等在病历书写质量提升中的作用,以及基于机器学习的ICD智能诊断编码方法和重症病人ICD自动…

ununtu源source的个人笔记

ununtu源的个人笔记 apt的一些信息如何还原为默认的源改为一个可用的原始源 apt的一些信息 /etc/apt/sources.list 如何还原为默认的源 网上有这样的贴子,我试了,竟然不行。 原因是这样的,比如,装好ubuntu之后,自带…

鸿蒙征文|鸿蒙技术分享:使用到的开发框架和技术概览

目录 每日一句正能量前言正文1. 开发环境搭建关键技术:2. 用户界面开发关键技术:3. 应用逻辑开发关键技术:4. 应用测试关键技术:5. 应用签名和打包关键技术:6. 上架流程关键技术:7. 后续维护和更新关键技术…

第 44 章 - Go语言 团队协作

在第44章中,我们将探讨团队协作的关键方面,包括版本控制系统、代码仓库管理和团队沟通与协作。为了具体化这些概念,我们将结合实际案例,并使用Go语言作为示例语言来演示如何有效地进行团队开发。 1. 版本控制系统 (Version Contr…

C++类中多线程的编码方式

问题 在C++代码中,一般的代码是需要封装在类里面,比如对象,方法等。否则就不能很好的利用C++面向对象的能力了。 但是这个方式在处理线程时会碰到一个问题。 考虑下面一个简单的场景: class demoC { public:std::thread t;int x;void threadFunc(){std::cout<<x&…

Android开发仿qq详情下拉头像变大

Android开发仿qq详情下拉头像变大 个人详情界面&#xff0c;很多都有下拉头像变大的效果&#xff0c;其实我觉得这效果还不如点击头像看大图呢 一、思路&#xff1a; 自定义ScrollView 二、效果图&#xff1a; 看视频更直观点&#xff1a; Android开发教程案例分享-仿qq详情…

深入解析下oracle date底层存储方式

之前我们介绍了varchar2和char的数据库底层存储格式&#xff0c;今天我们介绍下date类型的数据存储格式&#xff0c;并通过测试程序快速获取一个日期。 一、环境搭建 1.1&#xff0c;创建表 我们还是创建一个测试表t_code&#xff0c;并插入数据&#xff1a; 1.2&#xff0c;…