active=false 还能接收触摸事件的bug,搞一万年都没修复

使用的代码段:

使用版本 1.7.0

使用代码隐藏的效果

未使用的效果:

并没有出现你说的 bug,能否给一个 demo 呢?

人家给的是临时解决方案,当然没 bug

…好吧,我看错了,但是我注释掉

一样不会触发事件响应

我记得当时是UI比较复杂的时候出现的,很小概率偶现的,否则早查出来了.

能不能给一下你重现 bug 的 demo ?

还有一个可能是,在加载UI的时候切换场景之类的操作引起的.

每次都跟他们提,稳定性是一切,没有稳定性,其它一切都是0000000。

明天给你, 今天工作忙

你们的问题貌似是这种情况 之前看到过一个帖子说 父节点下面的子节点太多 导致不能马上隐藏节点

结合你们的情况 ui很复杂 节点很多 然后直接隐藏父节点 会不会是设置false的时候遍历子节点太多的时候 反应太慢 然后点击按钮还会生效???

ActiveTest.zip (283.4 KB)

我找到复现规律了, 请查看这个demo;
原因是因为:
this.aBtn.node.on(e, ()=>{
alert(“a be clicked”);
});
this.bBtn.node.on(e, ()=>{
alert(“b be clicked”);
});
this.node.pauseSystemEvents(true);
setTimeout(() => {
this.bBtn.node.active = false;
this.node.resumeSystemEvents(true);
}, 1000);

在active=false之后, 调用了父级的 resumeSystemEvents(true)

谢谢反馈,会继续排查看看

我们也出现了, 没办法 只能用代码段的去规避。 一个场景 都=false 了 button 的事件还是能触发,现在的引擎版本是1.7

像这种bug,实在没办法。先用临时方案,比如调整位置到十万八千里眼不见心不烦的位置。

1.5.1 有这个问题。一个提示面板,编辑器中是显示状态。但是实际运行后,用该面板的父节点脚本设置其隐藏。但是,图片是看不见了,但是整个面板 却挡住了 下面的按钮。 我把它在编辑器中隐藏后,再运行就无此问题。。。。

这个 1.7 应该已经修复了

还在用cocostudio:)

前几楼说1.7还有- -

请看我在前面发的demo, 在active=false之后, 调用了父级的 resumeSystemEvents(true), 就会让active==false的node仍然可以触发touch事件

请看 resumeSystemEvents 的文档

http://docs.cocos.com/creator/api/zh/classes/Node.html#resumesystemevents

这里的事件 pause 状态对于所有系统事件都是统一的,无法只恢复一部分而另一部分保持 pause 状态,所以一旦调用了 resumeSystemEvents(true),该节点和所有子节点的事件状态都会恢复成接收状态。参数 true 是 recursive 的意思,如果不穿参数或者传递 false,就不会影响子节点树

2017-12-26T07:24:16.126Z - normal: Simulator: JS Exception: _currentHovered._mouseListener is null, file: C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js, lineno: 5961

2017-12-26T07:24:16.126Z - normal: Simulator:

2017-12-26T07:24:16.127Z - normal: Simulator: Stack: [23]</_mouseMoveHandler@C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js:5961:25

2017-12-26T07:24:16.127Z - normal: Simulator: cc.EventListenerMouse.prototype.onMouseMove@C:/CocosCreator/resources/cocos2d-x/simulator/win32//script/jsb_cocos2d.js:315:5

2017-12-26T07:24:16.127Z - normal: Simulator:

2017-12-26T07:24:16.127Z - normal: Simulator:

2017-12-26T07:24:16.128Z - normal: Simulator: JS Exception: _currentHovered._mouseListener is null, file: C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js, lineno: 5961

2017-12-26T07:24:16.129Z - normal: Simulator:

2017-12-26T07:24:16.129Z - normal: Simulator: Stack: [23]</_mouseMoveHandler@C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js:5961:25

2017-12-26T07:24:16.130Z - normal: Simulator: cc.EventListenerMouse.prototype.onMouseMove@C:/CocosCreator/resources/cocos2d-x/simulator/win32//script/jsb_cocos2d.js:315:5

2017-12-26T07:24:16.130Z - normal: Simulator:

2017-12-26T07:24:16.130Z - normal: Simulator:

2017-12-26T07:24:16.131Z - normal: Simulator: JS Exception: _currentHovered._mouseListener is null, file: C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js, lineno: 5961

2017-12-26T07:24:16.132Z - normal: Simulator:

2017-12-26T07:24:16.134Z - normal: Simulator: Stack: [23]</_mouseMoveHandler@C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js:5961:25

2017-12-26T07:24:16.136Z - normal: Simulator: cc.EventListenerMouse.prototype.onMouseMove@C:/CocosCreator/resources/cocos2d-x/simulator/win32//script/jsb_cocos2d.js:315:5

2017-12-26T07:24:16.137Z - normal: Simulator:

2017-12-26T07:24:16.137Z - normal: Simulator:

2017-12-26T07:24:16.138Z - normal: Simulator: JS Exception: _currentHovered._mouseListener is null, file: C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js, lineno: 5961

2017-12-26T07:24:16.138Z - normal: Simulator:

2017-12-26T07:24:16.138Z - normal: Simulator: Stack: [23]</_mouseMoveHandler@C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js:5961:25

2017-12-26T07:24:16.138Z - normal: Simulator: cc.EventListenerMouse.prototype.onMouseMove@C:/CocosCreator/resources/cocos2d-x/simulator/win32//script/jsb_cocos2d.js:315:5

2017-12-26T07:24:16.139Z - normal: Simulator:

会出现这样的日志