触摸事件cc.Node.EventType.TOUCH_MOVE不响应的问题

在同一节点下有几个sprite,都挂上了触摸事件的组件,希望效果是:当手指触摸到某一个sprite会改变色,使用了cc.Node.EventType.TOUCH_START是没有问题的,
可是使用了cc.Node.EventType.TOUCH_MOVE后,一开始手指落在了一个sprite后不放,开始向其他sprite移动,发现其他的sprite并没有变色,如图:

且move过程中log出的 target 和 currentTarget 的信息都是一开始触摸到的节点,如图:

sprite上挂的脚本是这样的:this.node.on(cc.Node.EventType.TOUCH_MOVE, this._callBack, this); 换成了’touchmove’也还是不行。

请问有人遇到这样的情况吗,我看了其他co友的帖子没有看到相同的情况,我是在Google Chrome浏览器上测试的,使用的是鼠标模仿的触摸。

move事件是节点在接受到start事件之后才会触发的,你的其他牌的节点都没有接收到start事件,当然也不会接收到move事件啊

牌上都有挂start和move事件的啊,奇怪的就是move到其他牌上时,start事件没有出发,会不会和冒泡有关?现在正在研究。

start事件是你手指刚碰到屏幕是触发的,如果你刚触摸到屏幕时没有在这个节点的检测范围,当然不会接收到start事件啊

恍然大悟,原来是这样:grin:!请问我该如何实现移动触摸中选牌,用触摸事件吗?如果不可以话,我想只能通过坐标判断了。

在牌的父节点上加触摸事件,在父节点上检测触摸就行了啊

谢谢你,我试一试。

没办法了,由于需求,父节点的size大小为0,所以只能在每个子节点上加触摸事件。

请问下,如果在牌的父节点上加触摸事件然后检测,子节点需要加触摸事件吗?

不用啊,你在父节点里的逻辑组件去管理这些牌就行了,把这些牌放在一个数组里去管理

嗯嗯,我再搞搞。

你好,我在父节点添加触摸组件,请问如何在父节点上检测触摸啊,现在能想到的一个初步办法是通过触点的位置来计算,是否触摸到了牌。我刚转到cocos,麻烦之处还请见谅啊。

这其实就是要的鼠标的mouseover事件,但是可惜手机设备没有,我也做过这个效果,最终还是只能通过手指移动的所在位置判断在哪张牌上,然后控制

谢谢,嗯,现在解决了,方案和你一样,在父节点上判断触点的位置判断在哪张牌上。