В моем простом проекте я использую сенсорные события изменить кнопку состояния: в этом случае все нормальноCocos2d html5 onTouchEnded не работает
cc.eventManager.addListener(
{
event: cc.EventListener.TOUCH_ALL_AT_ONCE,
swallowTouches: false,
onTouchesBegan: onTouchesBegan,
onTouchesEnded: onTouchesEnded
}, this);
, но в этом случае никогда не называли мой onTouchEnded функция работает:
cc.eventManager.addListener(
{
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: false,
onTouchBegan: onTouchBegan,
onTouchEnded: onTouchEnded
}, this);
Через некоторое время отладки я нашел "если" заявление в функции cc.eventManager._onTouchEventCallback:
} else if (listener._claimedTouches.length > 0
&& ((removedIdx = listener._claimedTouches.indexOf(selTouch)) != -1))
{
В моем случае «listener._claimedTouches» == 0 и оператор if отрицает вызов onTouchMove и onTouchEnded-слушателей.
У кого-нибудь есть идея, почему «listener._claimedTouches» == 0 и почему такое происходит?
В этом коде я не вижу проблем. Не могли бы вы загрузить весь код, чтобы узнать, что случилось? Также я обычно отношусь ко мне как функция this.nameFunction в слушателе. Я не думаю, что это решение, потому что должно быть в сфере охвата, но на всякий случай. Иногда области в js вводят в заблуждение. –