Определение отдельных значений в текстовом поле с помощью Flash - PullRequest
0 голосов
/ 15 января 2011

Я хочу идентифицировать конкретные строки в текстовом поле из пользовательского ввода, чтобы добавить к переменной оценки, например, так -

if (userWords.text == firstWord) { оценка = оценка + 1; }

В приведенном примере к баллу добавляется 1, но если пользователь добавляет пробел, то во втором слове текстовое поле просматривает его как целое, а не как отдельные слова, в результате чего значения не добавляются к переменной балла.

Проблема заключается в том, что все текстовое поле рассматривается как одна целая строка. Вместо этого я хочу разделить его так, чтобы word1 добавлял 1 к баллу, word2 добавлял 1 к баллу и т. Д.

Я очень запутался в этой проблеме, так что спасибо всем, кто может помочь.

1 Ответ

0 голосов
/ 15 января 2011

Вы можете использовать метод 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; };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...