【问题标题】:AS3 Have whatever I type into Text Input turn into a variable?AS3 我在文本输入中输入的任何内容都变成了变量吗?
【发布时间】:2014-02-27 23:14:55
【问题描述】:

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

【问题讨论】:

  • 当你说你想让输入变成一个变量时,你是什么意思?您的意思是会生成一个全新的变量,并且该变量的 name 将是输入的任何内容,还是您的意思是现有变量将只取输入的任何值?

标签: actionscript-3 input


【解决方案1】:

实现这一点相当简单。您可以做到这一点的一种方法是在进行输入时运行键盘事件。然后假设您创建了文本字段并准备好输入,您有一个变量来存储文本字段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; 
} 

【讨论】:

    【解决方案2】:

    这有两个部分:

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

    这样做的原因是,每件事都是一次敲击一次。这很重要,因为对于“Jeffrey”这个词,您可以在其中输入几个不同的内容:

    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 会更好。

    【讨论】:

    • 有趣的方法。但是使用字典似乎有点过头了,尤其是与文本输入事件和更新单个变量相比。
    • 看起来我们对这个问题的解释不同。看看这个问题,他的意思可能是任何一个,看起来像。
    • 是的,我同意,我知道这可以有多种解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2014-01-03
    • 1970-01-01
    相关资源
    最近更新 更多