v1.2 scrollview组件的BUG

scrollview中监听子节点touchcancle事件,移动时会一直触发就像是touchmove事件一样。还有就是对于屏蔽了子节点的中的touchmove事件,没办法实现基于子节点的位置实现拖曳功能,不是直接拖曳这个子节点,而是根据它的位置在scrollview外面层生成新节点进行拖曳到指定位置的功能。


请问这个功能在1.2上如何实现,请教思路啊!v1.0的时候直接on就可以了,v1.1的时候使用了cc.eventManager.addListener实现了功能,现在v1.2我是没办法了,目前只能回退到v1.1版本了。

后面,我们会在 scrollview 上面加一个属性,可以让你定制 scrollview 不阻断 touch move 和 touch end,这样你就可以实现 drag and drop 了

Hi,ScrollView 在新版本中,如果发生触点移动并超过一定距离,就会取消子节点上的 touch 事件,不再触发。这是常规 UI 设计中的一个基本原则,不过的确没有照顾到 Drag n Drop 的需求,我们会在下个版本中添加一个标记,允许关闭这个行为,这样用户就可以自己处理了。

当然了,现在你也可以自己定制,在下面两个位置不去发送 cancel 事件,并且不 stopPropagation 即可

https://github.com/cocos-creator/engine/blob/master/cocos2d/core/components/CCScrollView.js#L853

https://github.com/cocos-creator/engine/blob/master/cocos2d/core/components/CCScrollView.js#L870

多谢指教,我尝试下。

已经解决,谢谢。还有就是性能有必要优化下,现在在手机上当scrollview中item多的时候会比较卡,现在10个就只有24帧,15个只有10帧了。