coco2dx-js 实现 层拦截 点击响应事件
来源:互联网 发布:js json根据key取值 编辑:程序博客网 时间:2024/06/05 05:40
今天要实现一个功能,要用到层拦截点击事件的功能,过程中走了一些弯路,下面记录一下所学的。
实现功能:
在已有的界面A中,点击A的一个按钮后,弹出界面B。这时点击界面B的时候,界面A不接收点击响应。关闭B界面后,A界面又可以点击,接收点击响应。
简单说就是,拦截层B出现的时候界面A不可点击,消失的时候界面A可点击。
预备知识(可以先不看,直接跳到做法,然后在返回来看):
界面B要拦截点击响应,要满足两点(下面的界面B表示拦截层):
第一:界面B要接收到点击事件(界面B接收点击事件后,才能对点击事件处理。是否接收到点击响应,取决于begin函数的返回值,返回true,表示能接收到。返回false,表示没有收到点击响应)
第二:界面B开启吞噬点击事件,即吞噬为true
(注意:不管界面B有没有隐藏,只要满足上面两个条件,界面B就会拦截点击)
根据界面B拦截响应的两个条件(要接收到响应,且设吞噬为true),我们可以控制上面两个条件来实现拦截功能。
做法:
1、界面B接收一直能事件,控制界面B的吞噬开和关,:
界面B初始吞噬为false(这样界面A可以接收到点击)
界面B弹出后,吞噬为true(这样就界面A就接收不到点击事件)
界面B关闭后,吞噬为 false(界面A又可以接收到点击了)
注意:界面B隐藏后,如果吞噬不设为false,还是会吞噬
2、界面B吞噬一直为true,控制 界面B接收点击事件的开和关:
用一个变量控制是否让B接收到点击事件。(界面B没有接收到点击事件的话,就是开启吞噬,也拦截不了)
一开始begin函数返回值设为false(界面B不接收事件,所以界面A可以接收到点击)
界面B弹出后,begin函数的返回值设为true(界面B能接收点击,且吞噬为true,所以界面A接收不到点击事件)
界面B关闭后,begin函数的返回值设为false(界面B不接收事件,所以界面A可以接收到点击)
做法比较:
第一种做法,在拦截层隐藏的时候,因为begin 一直为true,所以界面B一直都有接收的事件,即move和end都有运行。
第二种,在拦截层隐藏的时候,move和end函数没有运行。
代码和截图有需要的话,下次补上。
- coco2dx-js 实现 层拦截 点击响应事件
- 多个图叠加,解决点击事件穿透,onTouch事件拦截但是响应点击事件
- js中的事件响应,实现网页交互,鼠标点击、经过等
- JS实现点击事件统计
- JS实现点击切换事件
- 使用js实现点击事件
- vue.js实现点击事件
- 分发拦截响应事件
- Layout拦截点击事件
- JS实现点击文本框弹出DIV层
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- UIImageView响应点击事件
- 最近比较关注前端技术
- LeetCode(14)-Longest Common Prefix
- x265-1.7版本-common/pixel.cpp注释
- Android Auto-Building Apps for Auto,Getting Started with Auto
- IOS之触摸事件
- coco2dx-js 实现 层拦截 点击响应事件
- android failed:EISDIR(Is a directory)错误
- 理解javascript函数式编程中的闭包
- 添加UIview自定义的分割线、去掉默认的cell分割线、默认选中某一个(行)cell的方法
- 纯代码 vs XIB vs Storyboard
- Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
- x265-1.7版本-common/quant.cpp注释
- [微积分学习]Day.2 极限的概念
- DT_大数据梦工厂 第17课 RDD实战