Flixel - FlxButton действует так, как будто нажал несколько раз - PullRequest
1 голос
/ 03 января 2012

У меня есть пара диалоговых окон, сделанных из FlxGroups.На первом экране LandingScreen есть кнопка, которая открывает второй экран CargoShop.Всякий раз, когда экран добавляется, он становится активным экраном в моем FlxState, а кнопки других экранов устанавливаются на active = false; Так, когда нажимается кнопка для открытия экрана CargoShop, она устанавливается на active = false;при следующем цикле обновления.

Теперь на экране CargoShop есть кнопка для его закрытия, что снова делает LandingScreen активным.По какой-то причине, как только экран CargoShop закрывается, мгновенно открывается новый, как если бы кнопка магазина была нажата снова.

Эти кнопки не находятся друг над другом.Есть ли какой-то трюк, который я пропускаю с FlxButton, который думает, что он нажал, когда это не так?Это происходит только тогда, когда я использую мышь;если я закрою CargoScreen с помощью команды клавиатуры, новая будет создана не сразу.

Ответы [ 2 ]

0 голосов
/ 10 января 2012

Основная истина, которую я только что узнал о FlxGroup s: Установка группы в активное состояние: false! = Установка каждого члена группы в активное состояние: false.

Скажем, у вас есть FlxGroup скуча FlxButton с в нем.Если вы нажмете кнопку, и одним из результатов будет то, что FlxGroup будет установлен на active = false, сама кнопка все еще активна.

Решение: вызовите ...

yourGroup.setAll("active", false);

Это установит для каждого члена FlxGroup значение active = false, и кнопка будет знать, что ее невозможно щелкнуть.

Источник: funstorm - См. Решение № 2

0 голосов
/ 03 января 2012

Вы можете установить mouseEnable = mouseChildren = false на неактивном экране, чтобы убедиться, что он не будет получать ввод мыши. Хотя ваша проблема, на первый взгляд, кажется логической проблемой.

...