gpt4 book ai didi

javascript - 向我的 Sprite 添加监听器时触发太多事件

转载 作者:行者123 更新时间:2023-12-03 08:36:12 25 4
gpt4 key购买 nike

我正在尝试创建一个基本的 Cocos2d-js 示例,其中包含一堆可以单击移动的球。我正在创建这样的球:

        var listener = cc.EventListener.create({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: false,
onTouchBegan: ballTouchBeganEventHandler
});

var BallTile = cc.Sprite.extend({
ctor: function(image, position)
{
this._super();
var ballSize = g_settings.ballSize;
this.initWithFile(image, cc.rect(0, 0, ballSize, ballSize));
this.setPosition(position);
cc.eventManager.addListener(listener.clone(), this);
}
});

var ball1 = new BallTile(ballImage1, ballPosition1);
var ball2 = new BallTile(ballImage2, ballPosition2);
var ball3 = new BallTile(ballImage3, ballPosition3);

问题是,无论我单击哪个球,事件都会触发三次(每个球一次),而不是对被单击的球仅触发一次。我对每个球使用相同的事件监听器,但我想象它只会为实际单击的球触发一次,而不是每个具有事件监听器的球触发一次。

我错过了什么?

最佳答案

尝试将 swallowTouches 设置为 true,然后确保从 ballTouchBeganEventHandler 内部返回 true

关于javascript - 向我的 Sprite 添加监听器时触发太多事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208573/

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