这里正在做一个功能需要让在前面的一个button不吞掉事件, 该怎么做啊?
根据官方文档, 事件传递都是从子节点发起, 逐层往父节点抛,
这么一来的话不可能像android一样拦截父节点然后自己做事件分发了
但是有一点奇怪的是我看到 ScrollView 里面如果包含有 Button 的话 ScrollView 和 Button 却都能感知到触摸事件,
不知道能不能把这个方法也复制到我的需求上
两个Node一上一下,在上面的能收到触摸事件,在下面的做成上面的父节点,也能收到事件。不过可能要自己写Node的触摸事件监听,直接用button组件可能会吞噬事件(未测试,自己试一下)。
多谢回答,不过这个方案行不通, 因为我这边的需求来看, 背后的button不止一个. 不可能同时设置一个节点拥有N个parent
我这边的需求也说一下吧,
就是做一个像微信主界面的东西
一个 scrollview 可以上下滑动, 同时还可以左右滑动来切换 tab
scrollview 上面每一项都可以点击
这个需求用cocos creator 不知道怎么搞啊
呼叫引擎开发团队~~ 在线等…
目前我做的一个方案是将 scrollview 放在一个横向滑动的 layout 里面
然后在 scrollview 上面做一个透明蒙层做事件分发,
横向事件就分发到 layout里, 纵向事件就分发到 scrollview 上,
不过这么做以后 , scrollview里面的按钮就接收不到事件了
恳请大神提供一个解决方案~
既然已经做了透明蒙层,那就在事件监听里写一个循环,遍历所有后面的button,如果触点在某个button的范围内,就触发这个button节点的一个函数。
谁说的…… 监听事件时 useCapture 参数传 true 就能由父节点拦截了。
具体 scrollview 相关事件,1.4 也做过调整,你是用的哪个版本呢?
我用的是 cocos creator 3.13
我有两个疑问:
1 scrollview 的事件分发机制是怎么样的
2 我应该如何利用 scrollview 来做上面描述的这个需求呢
跪求@jare 指导