In my simple project I use touch events to change a button states: in this case everything works fine
cc.eventManager.addListener(
{
event: cc.EventListener.TOUCH_ALL_AT_ONCE,
swallowTouches: false,
onTouchesBegan: onTouchesBegan,
onTouchesEnded: onTouchesEnded
}, this);
but in this case my onTouchEnded function have never been called:
cc.eventManager.addListener(
{
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: false,
onTouchBegan: onTouchBegan,
onTouchEnded: onTouchEnded
}, this);
After some time with debugging I found "if" statement in cc.eventManager._onTouchEventCallback function:
} else if (listener._claimedTouches.length > 0
&& ((removedIdx = listener._claimedTouches.indexOf(selTouch)) != -1))
{
In my case "listener._claimedTouches" == 0 and the if statement denies calling onTouchMove and onTouchEnded listeners.
Does anyone have an idea why "listener._claimedTouches" == 0 and why such a thing is happened?