在 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);
}
}
其中:
- sendb:提交按钮
- 文本框:输入响应的输入文本框。
我认为您使用的是多行文本字段,这就是您永远不会 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 级别。
我正在尝试创建一个简单的游戏,其中 用户可以 "talk" 使用屏幕上的角色。然而,当我尝试我正在使用的代码时,else 语句总是被触发,无论密码是否正确。当我想不通为什么时,我了解到输出总是 "undefined." 我一般对 Flash 几乎没有经验,所以错误可能很简单。我确信所有实例名称的书写和拼写方式都与代码中的相同。
代码:
stop();
sendb.onRelease = function(){
if (textbox.text == "no") {
gotoAndStop(2);
} else {
gotoAndStop(3);
}
}
其中:
- sendb:提交按钮
- 文本框:输入响应的输入文本框。
我认为您使用的是多行文本字段,这就是您永远不会 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 级别。