我是AS3的新手,我想知道如何将输入的内容输入到变量中?例如,在名称下的文本输入中,如果我输入“Jeffrey”,它将成为变量,然后我可以使用它来显示“Hello,Jeffrey”或类似的东西,无论输入的名称被Jeffrey替换。
答案 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
,情况会更好。