Javascript Phaser JS如何停止从textButton.events.onInputDown事件到game.input.onDown事件的事件传播(触发)?

Javascript Phaser JS如何停止从textButton.events.onInputDown事件到game.input.onDown事件的事件传播(触发)?,javascript,events,html5-canvas,phaser-framework,Javascript,Events,Html5 Canvas,Phaser Framework,这是 我这里有两件事 是game.input.onDown,它执行一些逻辑(在我的示例中生成粒子) 是textButton.events.onInputDown,其中textButton是一个对象实例,它执行另一个逻辑 问题是:当我点击我的文本按钮时,两个事件都被触发1和2 问题是,当我单击文本按钮时,如何防止事件1触发 代码的一部分: ... //This event is fired on click anywhere event # 1 game.input.onDown.add(part

这是

我这里有两件事

  • 是game.input.onDown,它执行一些逻辑(在我的示例中生成粒子)
  • textButton.events.onInputDown
    ,其中textButton是一个对象实例,它执行另一个逻辑
  • 问题是:当我点击我的文本按钮时,两个事件都被触发12

    问题是,当我单击文本按钮时,如何防止事件1触发

    代码的一部分:

    ...
    //This event is fired on click anywhere event # 1
    game.input.onDown.add(particleBurst, this);
    
    //This is Clickable text
    textButton = game.add.text(game.world.width - 5, 5, "CLICK ME", fontStyle);
    textButton.anchor.setTo(1, 0);
    textButton.inputEnabled = true;
    
    //This event is fired on click on text event # 2
    textButton.events.onInputDown.add(function () {
        console.log("button is Clicked");
    }, this, 2);
    ...
    

    您可以添加背景-透明精灵-并使用
    input.priorityID

    priorityID用于确定应该获取哪些游戏对象 发生输入事件时的优先级。例如,如果您有几个 默认情况下,重叠的精灵位于显示屏顶部 列表被赋予输入事件的优先级。你可以阻止这一切 通过控制priorityID值发生。值越高, 它们对输入事件的重要性越高

    见:

    确保您的文本按钮具有更高的优先级:

    textButton.input.priorityID = 1; // higher pirority
    
    将单击的精灵(我们的背景)作为第一个参数添加到粒子函数:

    function particleBurst(bg, pointer) {
    
    这样只能触发一个事件


    查看修改过的小提琴:

    谢谢@lpiepiora。这绝对有效,IMHO是一个很好的解决方法。然而,我想知道是否有任何全球游戏输入的解决方案?在这种情况下,当我尝试时,我自己的优先级不起作用。@AlexanderArutinyants我不知道更好的方法,如果有,我很乐意自己去了解;)
    function particleBurst(bg, pointer) {