在 Flash Actionscript 2.0 中输入文本为 "undefined"

Input text reads "undefined" in Flash Actionscript 2.0

我正在尝试创建一个简单的游戏,其中 用户可以 "talk" 使用屏幕上的角色。然而,当我尝试我正在使用的代码时,else 语句总是被触发,无论密码是否正确。当我想不通为什么时,我了解到输出总是 "undefined." 我一般对 Flash 几乎没有经验,所以错误可能很简单。我确信所有实例名称的书写和拼写方式都与代码中的相同。

代码:

stop();

sendb.onRelease = function(){

    if (textbox.text == "no") {

        gotoAndStop(2);

    } else {

        gotoAndStop(3);

    }

}

其中:

我认为您使用的是多行文本字段,这就是您永远不会 textbox.text == "no" 的原因。要验证这一点,请尝试使用空的多行文本输入:

trace(textbox.text.length);     // gives : 1 

为什么即使您的文本输入是 "empty",您总是会得到 1

因为,有一个newline字符(回车return或“\r”)自动插入到文本末尾。

所以在你的情况下,如果你想使用多行文本字段,你可以这样做:

if (txt.text.substr(0, 2) == "no") {

    gotoAndStop(2);

} else {

     gotoAndStop(3);

}

或者只使用单行文本字段,您的代码也能正常工作。

希望能帮到你。

确保 textbox 在代码的可访问范围内。这意味着它与您编写代码的主时间轴处于同一帧,并且处于主阶段的 root 级别。