Работа с незнакомой концепцией (мне) асинхронного и управляемого событиями программирования. Я борюсь с правильной структурой моих программ в AS3.Структура AS3 в отношении модальных диалогов
Что я хочу сделать, это написать класс, который представляет пользователю диалоговое окно с некоторым текстом (отправляется конструктору) и двумя кнопками «Да» и «Нет». К счастью, это уже не проблема для меня. Проблема возникает при выборе правильной структуры программы для получения той кнопки, на которую нажата кнопка.
Предположим, у меня есть Main.as, который в какой-то момент вызывает новый MyDialog, мой теоретический класс диалога. У меня есть getter в MyDialog.as, который устанавливает переменную myButton, которая по умолчанию равна 0, 1 если нажата кнопка «Да» и 2, если «Нет» нажата.
Очевидно, что я не могу создать диалог, а затем сразу же использовать геттер, у пользователя не было бы времени нажать любую кнопку, для этого может потребоваться какое-то время. Как я вижу, у меня должен быть цикл таймера (или фрейм-события) в Main.as, который постоянно использует getter для просмотра myButton, а затем действует соответственно, когда он изменяется.
Это кажется неправильным для меня. У моего Main.as должно быть много флагов штата для каждого создаваемого диалога. Это было бы грязно и, похоже, противоречит принципам программирования, управляемого событиями.
Я понимаю, что MyDialog может просто создать графику, а затем в Main.as вызвать событие, когда нажаты кнопки в этом диалоге, но это похоже на инкапсуляцию Object Orientated Programming, где MyDialog должен быть полностью автономным ,
Итак, есть ли какие-либо из моих возможностей правильный способ сделать это или я что-то пропустил? Любые мысли по этому поводу были бы с благодарностью восприняты. Я не лучший в мире кодер, и этот новомодный материал начинает причинять вред моей старой голове через некоторое время :)
Для чего это событие. отправьте событие, когда нажата любая кнопка, и поймайте их, затем примите меры. – BotMaster