先放出我的节点层级关系

首先我在Baseview节点上绑定了 touchstart,touchmove等系统事件,用于制作地图的拖拽移动和缩放,在其子节点中map100里面,会有金币生成,我需要制作滑动收取效果,而这个滑动收取,就和上面的拖拽移动产生了冲突。
那么我原先设想的实现方式是,我给map100节点中的金币节点绑定点击事件,当这个点击事件触发,我就再给map100这个节点绑定touchmove,和touchEnd事件, 然后再touchmove事件中进行阻止冒泡,结果当前这个节点的touchEnd事件也被阻止了,无法触发,我傻了X1。。。

那么我又尝试了cocos creator官方提供的屏蔽事件API,pauseSystemEvents, resumeSystemEvents 根据其解释,这个API在调用时要传入一个boolean参数,这个参数如果为true 他会把当前节点和子节点的所有事件全部屏蔽掉,不让触发
那么传false,就应该是只屏蔽自己的事件把,我是这么想得
暂停当前节点上注册的所有节点系统事件,节点系统事件包含触摸和鼠标事件。 如果传递 recursive 为 true,那么这个 API 将暂停本节点和它的子树上所有节点的节点系统事件
于是我将代码逻辑改为了这样,给map100节点中的金币节点绑定点击事件,当这个点击事件触发,再给map100这个节点绑定touchmove,和touchEnd事件 然后调用 this.Baseview.pauseSystemEvents(false) 结果发现,并没什么软用,地图还是可以拖动,而把参数改为true,地图是拖不动了,但是我给map100节点绑定的touchmove,和touchEnd事件也不生效了,我傻了X2.。。。

这时我用了第三种实现方式,我给最外层的Canvas节点绑定点击事件,判断坐标,当它的坐标符合map100中的金币节点坐标时,我就给Canvas节点帮定touchmove,touchEnd事件,这时我想,那这下this.Baseview.pauseSystemEvents(true) 就肯定影响不到我了把,因为我是父节点阿,它不是只影响当前节点和子节点吗,当我一运行,好了,Canvas节点的touchmove,touchEnd事件不触发…

另外补一句,window中按shift加徽标键加s键可以截图,然后暂存到剪贴版,但当我在这个编辑文字的窗口使用黏贴时,它显示上传,100%,但是一直在转圈圈…



