Cocos2dx中Scrollview控件滑动与其子控件监听冲突的解决方案(不改底层、最优)
语言环境:
Cocos2dx 3.6
Lua 5.1
UI编辑器:Cocos Studio v2.0.6
问题:Scrollview控件滑动与其子控件监听发生冲突。
在点击子控件时,若在子控件上进行移动,父容器Scrollview不会执行滑动事件,像是被吞噬了一样
我的解决思路是不改底层,通过逻辑来控制。直接上代码:
local moveOrReq = nil --移动或请求
local countMove = 1 --移动计次
--监听事件:按钮(子控件)
local TouchEventByBtn = function (obj,e)if e == ccui.TouchEventType.began then ---0moveOrReq = nilcountMove = 1elseif e == ccui.TouchEventType.moved then ---1countMove = countMove + 1if countMove > 10 thenmoveOrReq = "move"endelseif e == ccui.TouchEventType.ended and moveOrReq == nil then ---2(重点:执行事件放这里)--这里执行需要执行的按钮事件elseif e == ccui.TouchEventType.canceled then ---3moveOrReq = nilend
end
以上代码是子控件的监听执行事件,这里子控件我采用的是Button,对每一个子控件进行监听,父容器Scrollview不监听
要注意:若出现无法移动的情况。多半是Button吞噬了Scrollview,在创建每一个子控件时加上这一句代码:
btn:setSwallowTouches(false)
以上的解决思路是我综合不改底层情况下在脚本层解决的最优思路,当然,若为了所有的情况都避免,可以自定义监听,也可以自己封装继承函数
Cocos2dx中Scrollview控件滑动与其子控件监听冲突的解决方案(不改底层、最优)相关推荐
- IOS学习之UISwitch控件两种使用方法和监听
IOS学习之UISwitch控件两种使用方法和监听 分类: IOS开发入门2012-06-15 11:48 1363人阅读 评论(0) 收藏 举报 一.第一种创建UISwitch控件的方法,在代码中动 ...
- Android中对menu、home、back键的监听
Android中对menu.home.back键的监听,通过KeyEvent中的常量值来判断用户点击了哪个按钮. 其中对home键的监听需先在manifest文件中添加 <uses-permis ...
- Cocos2d-x学习(七):cocos2d-x中ScrollView的简单实现
在游戏关卡选择,道具店之中经常会用到类似于ScrollView的控件,之前用AndEngine引擎的时候简单的实现了一个,(AndEngine滑动菜单传送门),考虑到手头的游戏以后也会用到,就先用co ...
- C#如何获取当前控件的子控件以及多重子控件的实例(能操作这些获取到的子控件)
拿个实例,参照这个实例的思路可以解决: 比方说,我想获取到这个tabControl下当前选中的tabPage下的TableLayoutPanel下所有的Button控件 (ps:以下是一个通过ini文 ...
- recyclerview滑动到顶部和底部监听+上滑下滑监听
到达顶部和底部监听 判断是否滑动到底部, recyclerView.canScrollVertically(1);返回false表示不能往上滑动,即代表到底部了: 判断是否滑动到顶部, recycle ...
- cmd中检测远程的ip和端口是否处于监听状态
第一步:使用ping命令测试远程的ip是否可连通 在cmd中输入ping ip地址: 如果最后的统计信息中丢失率为0表示可以连通该ip地址.那么就可以进行下一步的测试该ip下的某一个端口是否开放的操作 ...
- java 多个监听_Java中使用for循环对多个Jbutton按钮监听
Java中Jbutton按钮监听,当多个按钮做的事差不多的时候是可以用for循环的(比如计算器1-9)省事省力. 监听时变量只能是final或者static,不过这些在for循环中明显不行,所以,就在 ...
- vue中给window添加滚动监听无效的解决方案
页面中有这么一个需求,当页面滚动到一定高度之后,页面中的某些元素进行吸顶,固定到顶部位置,或者是滚动到一定程度进行更新数据的操作. 我相信不少网友查阅过类似的资料,网友给出的解决方案,很多都是在mou ...
- 如何查找oracle中的服务器端口号,客户端端口号,监听端口及号Enterprise Manager Console HTTP 端口
求教 oracle中可以查看端口号的sql语句,服务器端口号,客户端端口号,监听端口号都可以,一定要是用sql语句查看的 通过文件查看的不可以 引用 求教 oracle中可以查看端口号的sql语 ...
最新文章
- QNX Hypervisor管理程序
- 17. 搭建FTP服务端
- c#实现Socket网络编程
- 剑指offer:合并两个排序的链表
- 【动态规划】叠放箱子问题(ssl 1640)
- 【2019浙江省赛 - J】Welcome Party(并查集,bfs,优先队列,建图)
- python如何装sklearn_python安装sklearn
- 对datatable类型列名排序_表格数据的排序功能(支持多列)
- python教程pdf-python基础教程[高清][中文第2版].pdf
- 2017linux c校园招聘,华为2017校招C++岗笔试题
- input子系统驱动学习之中的一个
- 阿里云 Code Pipeline 体验
- win7网络改局域网计算机名,局域网共享一键修复工具(支持win7) 修复windows7各种共享问题...
- 高并发场景设计与解决方案
- 详解注意力机制和Transformer
- Unity3d游戏制作 建模与蒙皮
- 一闪一闪亮晶晶,我有一颗小星星
- 程序员面试动态评分标准
- Excel导入数据时间格式问题处理
- JDBC连接数据库学习心得