求助:1.1.1rc2的问题。

    this.node.on('touchstart', onTouchDown, this.node);
    this.node.on('touchend', onTouchUp, this.node);

===注册两个touch时间。当点击控件,触发touchstart,然后稍微移动下,然后再放开,这时候不会触发touchend事件。

第二个问题:不知道是否是rc2的问题,因为最近才用到。
用模拟器运行会报如下的问题。


用浏览器则正常。

你的触摸点移出点击的node了吗?如果移动出去了,不会触发touchend,而是触发touchcancel

如果没有移出node,我这边用正式版测试是能触发touchend的,建议升级到1.1.1正式版试试看

没有移动出去。

能做一个简单的重现demo我帮你看看吗?

嗯 我漏了一个条件,还要加一个scrollview事件被scrollVIew拦截掉。

scrollView拦截touch事件.rar (2.7 MB)
不上传视频操作比较简单。
点击绿色按钮,稍微左移一下,放开就能重现。
正常需要打印出:touchend

另外scrollVIew里面再嵌套一层scrollView的话,子节点的sv无法正常实现scrollView的功能,无法移动。

因为如果你触发了scrollView的move事件,scrollView就会拦截move和end事件,导致scrollView的子节点不能接收这两个事件,@zilong 大大已经在想办法解决这个问题了

你这个问题和这个帖子是一样的问题,官方大神已经在想办法解决了,所以还需要耐心等待一下:grin:

http://forum.cocos.com/t/bug-layout/37519

还有一个关于scrollView的问题,希望官方能一起解决的
在scrollView的界面,滑动。因为scrollView设置了加速度,会不断的滚。这里还没有问题。
在scrollView还是滚动的时候,关闭界面(将界面active设置为false)。
然后再次打开界面的时候scrollView会继续滚动。

根据 @panda 大神的说法,emit(触摸事件应该是emit来进行分发的)不会考虑节点是否生效,

根据 @jare 大神的说法,active只是代表引擎是否还主动调用这个节点,哪怕active = false,这个节点的逻辑还是正常的

所以你触发了滚动事件之后,并不会因为你修改active而停止,但是我也觉得这样很不方便,现在只有自己做判断来停止scrollView的滚动事件:joy:

感谢反馈,我已经建立 issue,后续版本会修复的。

1赞

你是用什么接口停止scrollView的滚动事件的,界面激活的时候重设下位置吗?感觉体验不是很好。

修改active的时候,直接让scrollView滚动到顶部

不是很好用。用这个接口调用的时候,因为layout渲染并没有那么及时,所以导致scrollToTop并不能准确到达顶部。尤其是在嵌套的layout下面节点比较多的时候。

所以我说现在根本就不方便啊,但是暂时我想不到其他更好的办法:joy: