我有几个由FlxGroups制作的对话框屏幕。第一个屏幕LandingScreen
有一个打开第二个屏幕CargoShop
的按钮。每当添加一个屏幕时,它就会在我的FlxState中成为活动屏幕,而其他屏幕的按钮被设置为active = false;
,因此,当单击打开CargoShop
屏幕的按钮时,在下一个更新周期将其设置为active = false;
。
现在,CargoShop
屏幕有一个按钮来关闭它,这使得LandingScreen
再次激活。由于某种原因,一旦关闭CargoShop
屏幕,就会立即打开一个新的,就好像再次点击了商店按钮一样。
这些按钮不是在彼此的顶部。有没有什么技巧我错过了FlxButton,它认为它点击时,它没有?它只在我使用鼠标时发生;如果我用键盘命令关闭CargoScreen
,不会立即创建一个新的。
您可以将mouseEnable = mouseChildren = false
设置为非活动屏幕,以确保它不会接收鼠标输入。虽然你的问题似乎-乍一看-是一个逻辑问题。
我刚刚了解到的关于FlxGroup
s的基本事实:将组设置为活动:false !=将组的每个成员设置为活动:false。
假设你有一个FlxGroup
,里面有一堆FlxButton
。如果你点击一个按钮,其中一个结果是FlxGroup
被设置为active = false
,按钮本身仍然是活动的。
解决方法:call…
yourGroup.setAll("active", false);
这将设置FlxGroup
的每个成员为active = false
,并且按钮将知道它不可能被点击。