我正在设计Flash应用程序,它需要来自用户的两到三个数据。仅当其他元素之一已从默认值更改时,第三个数据元素才相关。
为了防止用户输入会根据输入倾斜计算的信息,如果默认条件不变,如何使文本输入框变灰?我可以嵌入一个条件来忽略来自该特定框的输入,但我知道有些用户将填写所有数据字段而不管屏幕上的指令。
答案 0 :(得分:1)
只需使用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被禁用。