В принципе, вопрос, скорее всего, можно было бы задать более точно, как мне просто отключить кнопку и затем снова включить ее? Я попытался установить buttonMode в false, mouseChildren в false и включить в false. Ничего не работает Я понимаю, что мог бы просто удалить прослушиватели событий, но, несомненно, есть более элегантный и эффективный способ. Поскольку удаление прослушивателей событий заставило бы меня отслеживать, какие функции относятся к определенным состояниям кнопок, и приходилось добавлять и удалять их снова и снова, что кажется неуклюжим.
Есть ли способ установить флаг, который временно отключает любые EventListeners, которые может иметь объект, а затем просто включить их снова? Я ошибочно полагал, что добавление событий RollOver и т. Д. В мувиклип теоретически преобразует его в кнопку, которую можно легко отключить с помощью свойства enabled. Кроме того, я не могу использовать SimpleButton, поскольку мне нужно больше гибкости, чем она обеспечивает.
Я создал пользовательский класс, который обрабатывает все эти функции и делает жизнь более простой, но мне интересно, есть ли здесь официальный способ «из коробки».
Ниже приведен изолированный пример, который использует MovieClip на сцене с именем экземпляра iPoo, где события всегда запускаются независимо от того, что устанавливается при нажатии кнопки:
iPoo.addEventListener (MouseEvent.ROLL_OVER, pooRollOver);
iPoo.addEventListener (MouseEvent.ROLL_OUT, pooRollOut);
iPoo.addEventListener (MouseEvent.CLICK, pooClick);
функция pooRollOver (_event: MouseEvent): пусто
{
iPoo.alpha = 0.5;
}
функция pooRollOut (_event: MouseEvent): пусто
{
iPoo.alpha = 1;
}
функция pooClick (_event: MouseEvent): пусто
{
trace("Poo");
iPoo.enabled = false;
iPoo.buttonMode = false;
iPoo.mouseChildren = false;
}