弹窗如何屏蔽其下层的scrollView的滑动手势

节点结构如下:

  • Canvas
    • scrollview A
    • 全屏弹窗background B
      • 非全屏弹窗内容
        • scrollView C

节点B 是一张半透明图片节点,scrollView A可以认为是全屏的,scrollView C在弹窗可视范围内,当弹窗出现时,scrollView A还是可以响应滑动事件。

对B注册触摸事件也没有用,给B添加cc.BlockInputEvents也没用

shade.on(cc.Node.EventType.TOUCH_START, function () {
    return true;
}, this);

示例demo如下:
touchTest.zip (532.6 KB)

在B上加这个组件

1赞

尝试添加了,但是没有用,当弹窗出现时,下面的scrollView A还是能滑动

最好能传一个例子

demo已上传,原贴末尾处

你用的哪个版本,我1.81测试你这个 demo 没问题。
添加BlockInputEvent组件,或者在脚本里截取事件都可以

我晕,又是cocos creator版本问题吗,我用的是1.8.0,我升到1.8.1试试,感谢回复

我下了1.8.1,只为testNode监听触摸事件是不能屏蔽下层scrollView的滚动手势的

this.testNode.on(cc.Node.EventType.TOUCH_START, function(event){
return true;
}, this);

只有添加了cc.BlockInputEvents,才可以屏蔽下层scrollView的滚动手势

this.testNode.on(cc.Node.EventType.TOUCH_START, function(event){
return true;
}, this);
this.testNode.addComponent(cc.BlockInputEvents);

遇到一个比屏蔽手势更奇葩的问题,用1.8.1在同一个场景上添加两个button:a和b,点击a显示scrollView A,点击b,显示scrollView B,默认显示scrollView A。
当点击button b切换到scrollView B时,发现scrollView B不能滑动了,切换到scrollView A就可以正常滑动。

同样的工程,用1.8.0就可以正常切换并滑动,晕死

我掐指一算,1.82快出了,或许你说的问题就都没有了

我用的1.81没问题啊

莫名其妙的问题啊,同样的工程文件,我同事也是1.8.0,他的就可以屏蔽scrollView的触摸手势,我的就不可以。我换成1.8.1,切换scrollView,直接不能滚动了

强行等更新:14: