求助:cocos2djs,多点,只能获得一个点,怎么解决。。。。。。。。。。

用cocos2d-js只能获取一个点,下面是代码
this.touchesEventObject = {
event: cc.EventListener.TOUCH_ALL_AT_ONCE,
onTouchesBegan: this.touchsBegan,
onTouchesMoved: this.touchsMoved,
onTouchesEnded: this.touchsEnd,
onTouchesCancelled: this.touchsCancel
};

得到的只有一个点,但我用createjs框架,就能获得多个点

唉,都没人回,看来只能自己发现解决问题了

在CCInputManager.js中有方法

getTouchesByEvent:,这个方法,touchstart,touchmove,touchend…都会调用。

在我调试过程中发现,只有touchmove能成功返回多个点。其它事件只有一个点。然后继续查看源码,在getTouchesByEvent方法里面有一行代码

引起我的注意 var length = event.changedTouches.length;

我经常用的是touches来获取点信息,changedTouches是什么东东,然后百度找到如下信息:

“changedTouches、targetTouches和touches分别包含稍微不同的触摸列表。targetTouches和touches分别包含当前位于 屏幕上的手指列表,但changedTouches仅列出最后发生的触摸。”

changedTouches仅列出最后发生的触摸,下面方法是我自己写的打印方法

appLog(“changedTouches,”+length + “,touches” + event.touches.length);//输出changedTouches,1,touches,2

所以问题就在changedTouches这里了。

既然是多点,为什么要用changedTouches这个属性?????????????

谢谢楼主的反馈 T.T

这里好像是有些问题。。。
因为可以通过id来获取不同的点了,所以好像这里的列表就木有太注意。。。
T.T

总之谢谢楼主啦。哇咔咔。。。
:14::14::14::14:

这里有什么好的办法吗?
我现在做的这个项目,要用到手势。
还有个问题:如果2个手指按下,就触发两次touchesBegan,但两手一前一后松开,应该要触发两次touchesEnd才对,但只触发了一次,
我看到在getSetOfTouchesEndOrCancel,第一次手指松开,就把所有点删除了,指所以就只触发了一次