2.0.7 Mask 组件拦截事件没有考虑到 inverted 的 bug

遮罩着看不见的加了BlockInputEvents组件还能点击到按钮,没遮罩到能看见的按钮 反而点击不了!!!

测试过,不会有你说的 bug,麻烦给一下能重新的 demo

demo1.zip (742.4 KB)

@Knox 是因为inverted勾选和不勾选导致的吧

我先测试看看

嗯 inverted导致的问题 隐藏的能点击 显示的反而点击不了

他的意思基本是mask反向遮罩点击事件不正确
原因是CCMask下的_hitTest没有对反响遮罩的情况做处理


噢,那我说的这个问题,是属于设计如此还是BUG呢?

按钮是否被禁用,如果有禁用还能点击那么就是 bug,mask 会通过 hitTest 进行拦截事件,但是没有考虑到反向的情况,是 bug

正常情况下,MASK显示区域外的节点的点击事件都是不会被触发的,这个没问题吧。

但是MASK选中反响遮罩的情况,显示区域不能响应点击事件,非现实区域响应点击事件。

这能理解不?

你自己反响遮罩,非反响遮罩自己试一下就知道了:sweat_smile:

我发的demo里 难道你看不出来问题吗 能看见的不能点击 不能看见的能点击 这就是个问题了

你可以先自己这样临时使一下

1赞

该 bug 是因为 mask 的 hitTest 计算没有考虑到 inverted 的时候导致的,可以暂时用 @a1076559139 的方案

会进行修复,进入到 2.0.8 版本

现在3.4.0好像也有这个问题,请问怎么解决?