我想从用户输入中识别文本框中的特定字符串以添加到分数变量,如下所示 -
if(userWords.text == firstWord){ 得分=得分+ 1; }
给出的示例为分数添加1,但如果用户添加空格然后第二个单词,则文本框将其视为整体而不是单个单词,从而导致没有任何值添加到分数变量。
问题在于整个文本框被视为一个完整的字符串。相反,我想把它拆分,所以word1会在分数上加1,word2会在分数上加1,等等。
我对这个问题非常困惑,所以感谢任何可能提供帮助的人。
答案 0 :(得分:0)
您可以使用StringHelper类的trim()方法。这将删除与指定字符串之前和之后的char参数匹配的所有字符。您可以在Adobe livedocs的String类页面底部的示例中找到该类。网址为http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/String.html,但也如下:
class StringHelper {
public function StringHelper() {
}
public function replace(str:String, oldSubStr:String, newSubStr:String):String {
return str.split(oldSubStr).join(newSubStr);
}
public function trim(str:String, char:String):String {
return trimBack(trimFront(str, char), char);
}
public function trimFront(str:String, char:String):String {
char = stringToCharacter(char);
if (str.charAt(0) == char) {
str = trimFront(str.substring(1), char);
}
return str;
}
public function trimBack(str:String, char:String):String {
char = stringToCharacter(char);
if (str.charAt(str.length - 1) == char) {
str = trimBack(str.substring(0, str.length - 1), char);
}
return str;
}
public function stringToCharacter(str:String):String {
if (str.length == 1) {
return str;
}
return str.slice(0, 1);
}
}
然后你可以按如下方式实现它:
var strHelper:StringHelper = new StringHelper();
if (strHelper.trim(userWords.text, " ") == firstWord) { score = score + 1; }
为了让生活更轻松(特别是如果您使用时间轴),您只需从StringHelper类中提取所需的方法并将其添加到您的代码中。这样您就可以调用函数而无需实例化StringHelper类并从其实例中调用它。以下是此示例:
function trim(str:String, char:String):String {
return trimBack(trimFront(str, char), char);
}
function trimFront(str:String, char:String):String {
char = stringToCharacter(char);
if (str.charAt(0) == char) {
str = trimFront(str.substring(1), char);
}
return str;
}
function trimBack(str:String, char:String):String {
char = stringToCharacter(char);
if (str.charAt(str.length - 1) == char) {
str = trimBack(str.substring(0, str.length - 1), char);
}
return str;
}
function stringToCharacter(str:String):String {
if (str.length == 1) {
return str;
}
return str.slice(0, 1);
}
if (trim(userWords.text, " ") == firstWord) { score = score + 1; };