AS3我输入文本输入的内容变成了变量吗?

时间:2014-02-27 23:14:55

标签: actionscript-3 input

我是AS3的新手,我想知道如何将输入的内容输入到变量中?例如,在名称下的文本输入中,如果我输入“Jeffrey”,它将成为变量,然后我可以使用它来显示“Hello,Jeffrey”或类似的东西,无论输入的名称被Jeffrey替换。

2 个答案:

答案 0 :(得分:1)

实现这一点非常简单。一种方法是在输入时运行键盘事件。然后假设您已创建文本字段并准备输入,您有一个存储textfield text属性的变量。所以你要创建你的变量:

private var inputText:String;

下一步添加您的听众:

stage.addEventListener( KeyboardEvent.KEY_DOWN, onKeyDown );

然后创建侦听器函数,并在该函数中将变量设置为文本字段文本。在这个例子中,我们假设您的文本字段被称为myTextField

private function onKeyDown( e:KeyboardEvent ):void {
    textInput = myTextField.text;
}

现在你有一个变量,每次按下一个键时都会存储文本字段的文本。

每当您完成输入后,从舞台中删除侦听器:

stage.removeEventListener( KeyboardEvent.KEY_DOWN, onKeyDown );

现在还有另一种方法。您可以将TEXT_INPUT事件附加到文本字段并以这种方式捕获输入,如下所示:

myTextField.addEventListener( TextEvent.TEXT_INPUT, onInput ); 

public function onInput( e:TextEvent ):void { 
    inputString = myTextField.text; 
} 

答案 1 :(得分:0)

这有两个部分:

1:定义“输入TextInput的内容”。

这样做的原因是每次键入一次键入的内容。这很重要,因为对于“杰弗里”这个词,你可以输入几种不同的东西:

J
Je
Jef
Jeff
Jeffr
Jeffre
Jeffrey

您可能不希望所有这些转变为变量,但ActionScript 3.0或多或少会将这些视为所有单独的输入。不知何故,你必须将“杰弗里”与其他所有人区别开来。通常这是通过让用户单击TextInput上的“提交”按钮或选项卡来完成的,但您必须自行决定。

2:向您的班级添加字典变量,并将输入用作其中一个键:

private var myDict:Dictionary = new Dictionary();

每当程序确定用户已完成在TextInput中输入内容时(如在“提交”按钮的单击处理程序中),只需执行以下操作:

myDict[myTextInput.text] = new Object(); // or whatever value you want

因此,假设用户输入了值“Jeffrey”。然后你可以稍后回来并通过该名称访问有效变量:

myDict[myTextInput.text] = 5; // myTextInput.text == "Jeffrey"
.
.
.
trace(myDict["Jeffrey"]); // output is "5"
trace(myDict.Jeffrey); // output is "5"
trace(myDict[myTextInput.text]); // output is "5" if myTextInput.text is the same

有效地回滚早期的修改,只需继续使用Dictionary,而不是Object。如果用户键入了某些内容,例如“12345”,那么如果您使用Dictionary,情况会更好。