Как сохранить элемент серым, если не выполнено условие? - PullRequest
0 голосов
/ 03 апреля 2011

Я нахожусь в процессе разработки приложения Flash, и оно требует от пользователя двух или трех фрагментов данных.Третий элемент данных имеет значение только в том случае, если один из других элементов изменился по сравнению со значением по умолчанию.

Чтобы пользователь не мог вводить информацию, которая могла бы исказить вычисления на основе ввода, как я могу выделить серым цветом?поле ввода текста, если условие по умолчанию не изменилось?Я мог бы вставить условие, чтобы игнорировать ввод из этого конкретного поля, но я знаю, что некоторые пользователи будут заполнять все поля данных независимо от экранных инструкций.

1 Ответ

1 голос
/ 04 апреля 2011

Просто используйте обработчик событий Event.CHANGE + обработчик, чтобы проверить состояние / состояние элементов. Это событие вызывается каждый раз, когда пользователь изменяет компонент. Например, вот что делает ввод текста:

var tf:TextInput = new TextInput();

var someOtherObject:Button = new Button();

tf.x = 100;
tf.y = 100;
tf.width = 150;

stage.addChild(tf);
stage.addChild(someOtherObject);

tf.addEventListener(Event.CHANGE, onFormChanged);

private function onFormChanged(e:Event):void
{
   switch(e.currentTarget){
      case tf:
         //Do your conditional checks here.
         if(tf.text.toString().length < 10){
             someOtherObject.enabled = false;
             someOtherObject.text = "";
             someOtherObject.maxChars = 0;
         }else{
             someOtherObject.maxChars = 100;
         }
      break;

      case someOtherObject:

      break;
   }
}

Так что, по сути, когда пользователь вводит tf, я проверяю, что они ввели не менее 10 символов. Если бы они соответствовали условию, а затем удалили символ, событие было бы запущено снова, и условие не было бы выполнено, поэтому someOtherObject отключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...