Actionscript 3 除非满足条件,否则如何使元素保持灰色?

Actionscript 3 除非满足条件,否则如何使元素保持灰色?,actionscript-3,Actionscript 3,我正在设计一个Flash应用程序,它需要用户提供两到三条数据。第三个数据元素仅在其他元素之一已从默认值更改时才相关 为了防止用户输入会扭曲基于输入的计算的信息,如果默认条件不变,如何使文本输入框变灰?我可以嵌入一个条件来忽略来自该特定框的输入,但我知道有些用户将填充所有数据字段,而不管屏幕上的指示。只需使用Event.CHANGE listener+handler来检查元素的条件/状态。每次用户更改组件时都会触发此事件。例如,这里有一个执行此操作的文本输入: var tf:TextInput =

我正在设计一个Flash应用程序,它需要用户提供两到三条数据。第三个数据元素仅在其他元素之一已从默认值更改时才相关


为了防止用户输入会扭曲基于输入的计算的信息,如果默认条件不变,如何使文本输入框变灰?我可以嵌入一个条件来忽略来自该特定框的输入,但我知道有些用户将填充所有数据字段,而不管屏幕上的指示。

只需使用Event.CHANGE listener+handler来检查元素的条件/状态。每次用户更改组件时都会触发此事件。例如,这里有一个执行此操作的文本输入:

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;
   }
}
var tf:TextInput=new TextInput();
var someOtherObject:Button=new Button();
tf.x=100;
tf.y=100;
tf.width=150;
阶段。addChild(tf);
stage.addChild(someOtherObject);
tf.addEventListener(Event.CHANGE、onformchange);
私有函数onFormChanged(e:事件):无效
{
开关(如currentTarget){
案例tf:
//在这里做有条件的检查。
if(tf.text.toString().length<10){
someOtherObject.enabled=false;
someOtherObject.text=“”;
someOtherObject.maxChars=0;
}否则{
someOtherObject.maxChars=100;
}
打破
case someOtherObject:
打破
}
}

所以基本上,当用户输入tf时,我要确保他们至少输入了10个字符。如果它们满足条件,然后删除一个字符,则事件将再次触发,而条件将不满足,因此其他对象将被禁用。

这适用于按钮,但不适用于文本字段。我不得不使用
textfield.selective=false
来禁用输入,但文本仍然可以输入,只是根本没有提交。当您需要找到与特定组件/类交互的特定方式时,请使用语言参考。对于TextInput,您可以简单地将maxChars属性设置为0,并通过设置TextInput.text=“”;)清除所有内容;。但你是对的,我说你可以简单地禁用它,而事实上这对这个确切的组件不起作用。不幸的是,这就是闪光的本质。我已经更新了示例以解决您提出的问题。