Я знаю, что это не то, что вы хотите услышать, но здесь все равно идет речь: почему вы хотите это сделать?Вся цель состояний в том, что вам не нужно было бы писать тонны ActionScript, чтобы сделать то же самое.
Почему вы не можете сделать это так
Написав Btn.enabled.State1
в ActionScript, вы, по сути, говорите: дайте мне свойство с именем 'State1' изЛогический экземпляр с именем 'enabled'.Очевидно, что это не сработает, потому что логическое значение не имеет такого свойства.Вы путаете нотацию MXML с точкой (.), Используемую для назначения значений свойствам на основе состояний, с нотацией ActionScript, используемой для чтения / записи свойств.
Решение илинастолько близко, насколько это возможно,
Поскольку сама природа этой функции заключается в том, что вы будете использовать ее в MXML, вы не можете делать в точности то, что запрашиваете в ActionScript.Следующим лучшим вариантом будет прослушивание StateChangeEvent en для установки свойства Button 'enabled' согласно новому имени состояния.
addEventListener(StateChangeEvent.CURRENT_STATE_CHANGE, onStateChange);
private function onStateChange(event:StateChangeEvent):void {
switch (event.newState) {
case "wrong": Btn.enabled = false; break;
case "correct": Btn.enabled = true; break;
}
}
(я использую те же состояния, что и вДжеймс ответ)