as3 if else,min max value

时间:2012-09-19 20:49:37

标签: actionscript-3

我希望用户在文本字段(INPUTFIELD)中填写介于1-350之间的数字。 通过XML我想在另一个文本字段(OUTPUTFIELD)中返回一个字符串。

我有99%的工作,但在用户填写数字0或高于350之后,我想在OUTPUTFIELD中返回一条消息。

我没有这个工作,我收到了消息:

TypeError: Error #2007: Parameter text must be non-null.
    at flash.text::TextField/set text()
    at MethodInfo-2()

我的代码如下:

this.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
function keyDownHandler(event : KeyboardEvent):void {
    if (event.keyCode == Keyboard.ENTER) { 
        if (inputField.text > "0") {
               outputField.text = xmlData.prefix_list.country[Number(inputField.text)];
               outputField.setTextFormat(myTextFormat);
        } else {
               if (inputField.text > "350") {
                   outputField.text = "DOES NOT EXIST";
                   outputField.setTextFormat(myTextFormat);
               } 
        }
    }
}

我在“if”条件中尝试了很多选项,例如只有几个:

if (inputField.text > "0" || inputField.text < "350")
if (inputField.text >= 0 && inputField.text =< 350)
if (inputField.text >= "0" && inputField.text =< "350")

同样适用于“其他”条件。

} else {
    if (inputField.text > "350") {

也许有人可以指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

if (int(inputField.text) > 0 && int(inputField.text) < 350)    {
  outputField.text = xmlData.prefix_list.country[Number(inputField.text)];
  outputField.setTextFormat(myTextFormat);
} else {
  outputField.text = "DOES NOT EXIST";
  outputField.setTextFormat(myTextFormat);
}

如果使用整数,则必须将value转换为int。

在AS3中转换类型很容易。这是教程如何将String转换为数字http://www.trainingtutorials101.com/2011/01/actionscript-3-convert-strings-to.html