touch_start事件如何灵活控制吞噬?

TOUCH 事件,需要主动控制其在需要的时候切换吞噬和点透。现在碰到的问题是,一直都是吞噬,在文档和api上并没找到什么方法可以控制节点点透。我注册时间的方法是:

调用event.stopPropagation()就吞噬,不调用就穿透吧,可以用个变量控制,要不要调用event.stopPropagation(),这样就可以随便控制了啊,当然这些只是 想法,没有实践过,如有错误勿怪

1赞

试过了,没用啊哥们。我现在是想在游戏最上面加一个透明的层,在不影响游戏的情况下,在这个透明层上面增加点击特效,类似点一下然后点击位置有波纹的那种,所以需要这个层能接收点击事件,但是不要吞噬点击事件。

你没有调用event.stopPropagation()的情况下触摸不能穿透你的透明层吗?

不能。我这样写就已经是完全吞噬了:

我使用的creator版本是1.3.3

马上我试试看

事件只会沿父节点向上发送。你得保证你需要响应的下层节点处于透明层的父节点路径上。

可能不是完全理解你的意思。我新建一个项目,在canvas下放一个按钮和一个透明层,点击依旧是没有办法穿过透明层点击到下面的按钮,代码和我前面回复的截图一样。

按钮需是透明层的父节点(或者父节点的父节点,或者父节点的父节点的父节点。。。)才行。

他说的事件穿透,不是事件派送吧,事件派送才是一层一层派送到父节点吧?我也很久没用了,忘了:joy:

嗯,用node.on方法没有触摸穿透的,event.stopPropagation()就是停止的事件派送,而不是关闭穿透。

那我把cocos2d和creator记混了:joy::joy::joy:

:joy: 你忘记了你回答我的这个帖子:
http://forum.cocos.com/t/creator-on-touch/39379

几个月没用creator了,忘完了:joy:

谢谢回答,不过按照你的帖子上的方式来做的话,需要把我整个游戏里面所有以前用button组件创建的节点都改过来,相当于禁用button按钮,全部走最上面的node代理的触摸事件了吧,这个太划不来了,我只能再想想有没有其他的解决方案了。。。。

还有一个办法(想法,还没试)。。
把透明层变成所有button的父节点,然后所有button的zIndex改成负值让透明层显示在上方(可以把所有button加到一个节点A下,A变成透明层的子节点,A的zIndex为负值)。这样button响应完事件会向上传递到透明层。

我刚刚试了,不行的。当子节点的zindex为负值的时候,你就点击不到子节点了,和先前的情况一样。。。