gpt4 book ai didi

javascript - Cocos2d html5 onTouchEnded 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:44 24 4
gpt4 key购买 nike

在我的简单项目中,我使用触摸事件来更改按钮状态:在这种情况下一切正常

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 以及为什么会发生这样的事情?

最佳答案

你应该添加一个“return true;” onTouchBegan 末尾的语句。 onTouchEnd 会在 onTouchBegan 返回 true 时触发。

var listener = cc.EventListener.create({
event:cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches:false,
onTouchBegan: function(touch, event) {
return true;
},
onTouchEnded: function(touch, event) {
//do sth.
}
});
cc.eventManager.addListener(listener, this);

关于javascript - Cocos2d html5 onTouchEnded 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com