Определение отдельных значений в текстовом поле с помощью Flash
Я хочу определить конкретные строки в текстовом поле из пользовательского ввода, чтобы добавить к переменной оценки, например, так -
if (userWords.text == firstWord) {оценка = оценка + 1; }
Приведенный пример добавляет 1 к оценке, но если пользователь добавляет пробел, то после второго слова текстовое поле просматривает его как целое, а не отдельные слова, в результате чего значения не добавляются к переменной оценки.
Проблема заключается в том, что все текстовое поле рассматривается как одна целая строка. Вместо этого я хочу разделить его так, чтобы word1 добавлял 1 к баллу, word2 добавлял 1 к баллу и т. Д.
Я очень запутался с этой проблемой, поэтому спасибо всем, кто может помочь.
1 ответ
Вы можете использовать метод trim() класса StringHelper. Это удалит все символы, которые соответствуют параметру char до и после указанной строки. Вы можете найти этот класс в примере внизу страницы класса String в Adobe Liveocs. URL-адрес 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; };