如何实现模式窗口,拦截底层的消息?

如下图,MsgBox是一个全屏大小的节点,现在显示出来。发现Button1还是会接受消息,有移入移出效果并可以点击。如何才能简单地屏蔽掉层级比MsgBox低的节点的消息?小白求大神指导~

你的MsgBox拦截touch事件了吗?

MsgBox现在什么都没做。。。我希望能拦截所有消息,求指导~

有相关的属性可以配置吗?

加个button组件,transition为none,完事。

很简单啊,你在MsgBox上添加一个脚本,脚本里监听所有touch事件,touchstart,touchmove,touchend,touchcancel,然后在所有touch回调里调用event.stopPropagation(),这样你的button1就接收不到触摸事件了

1赞

感谢两位大神的热心解答~:pray:
@hiav8d ,这个方法很取巧,我直接在MsgBox上加一个按钮组件真可以拦截消息了,简单且不用写代码,赞!不过不知道是否真的能拦截掉所有消息?
@atmy 这一开始我也想这么做,当感觉略麻烦。下层可能会响应任意事件,这样是不是所有的事件都要实现一遍?

然后这两种方法总感觉都不是非常完美,难道只能这么做了?

是要实现一遍所有事件,不过如果你你调用了event.stopPropagation()之后,事件是不会再继续传递的

当然我也觉得@hiav8d的方法更好,简单有效

加个button组件可以解决问题,但总觉得这个有点奇怪。