【问题标题】:Flixel - FlxButton is acting as if clicked multiple timesFlixel - FlxButton 就像被多次点击一样
【发布时间】:2012-02-01 05:20:22
【问题描述】:

我有几个由 FlxGroups 制成的对话屏幕。第一个屏幕LandingScreen 有一个用于打开第二个屏幕CargoShop 的按钮。每当添加一个屏幕时,它就会在我的 FlxState 中成为活动屏幕,并且其他屏幕的按钮设置为active = false; 因此,当单击打开CargoShop 屏幕的按钮时,它设置为active = false;在下一个更新周期。

现在,CargoShop 屏幕有一个关闭它的按钮,这使得LandingScreen 再次激活。出于某种原因,CargoShop 屏幕一关闭,就会立即打开一个新屏幕,就像再次点击了商店按钮一样。

这些按钮不在彼此之上。 FlxButton 是否缺少一些技巧,即认为它没有被点击?仅在我使用鼠标时才会发生;如果我用键盘命令关闭CargoScreen,不会立即创建一个新的。

【问题讨论】:

    标签: actionscript-3 debugging flixel


    【解决方案1】:

    您可以将mouseEnable = mouseChildren = false 设置为非活动屏幕,以确保它不会接收鼠标输入。虽然您的问题 - 乍一看 - 是一个逻辑问题。

    【讨论】:

    • 确实...我认为 Flixel 很可能存在导致此问题的错误,但我不确定。
    【解决方案2】:

    我刚刚了解了FlxGroups 的基本事实:将组设置为 active:false != 将组的每个成员设置为 active:false。

    假设你有一个FlxGroup,里面有一堆FlxButtons。如果您单击一个按钮并且其中一个结果是 FlxGroup 被设置为 active = false,则该按钮本身仍处于活动状态。

    解决方法:调用...

    yourGroup.setAll("active", false);
    

    这会将FlxGroup 的每个成员设置为active = false,并且按钮会知道它不可能被点击。

    来源:funstorm - 请参阅解决方案 #2

    【讨论】:

      猜你喜欢
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      相关资源
      最近更新 更多