1

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

现在,CargoShop屏幕有一个按钮可以关闭它,它会LandingScreen再次激活。出于某种原因,一旦CargoShop关闭屏幕,就会立即打开一个新屏幕,就好像再次单击了商店按钮一样。

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

4

2 回答 2

0

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

于 2012-01-03T15:00:52.413 回答
0

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

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

解决办法:打电话...

yourGroup.setAll("active", false);

这会将 to 的每个成员设置FlxGroupactive = false,并且按钮将知道它不可能被单击。

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

于 2012-01-10T15:35:05.937 回答