私の単純なプロジェクトでは、タッチ イベントを使用してボタンの状態を変更します。この場合、すべて正常に動作します。
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 関数で「if」ステートメントを見つけました。
} else if (listener._claimedTouches.length > 0
&& ((removedIdx = listener._claimedTouches.indexOf(selTouch)) != -1))
{
私の場合、 "listener._claimedTouches" == 0 であり、if ステートメントは onTouchMove および onTouchEnded リスナーの呼び出しを拒否します。
なぜ「listener._claimedTouches」== 0なのか、なぜそのようなことが起こったのか、誰にも分かりますか?