在我簡單的項目,我用觸摸事件來更改按鈕狀態:在這種情況下,一切 工作正常的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);
過了一段時間進行調試,我發現 「if」 語句中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引用爲this.nameFunction。我不認爲這是解決方案,因爲應該在範圍內,但以防萬一。有時候js中的範圍是誤導性的。 –