2011-01-15 6 views
0

を使用して、テキストボックス内の個々の値を識別 -私はそうのように、スコア変数に追加するユーザの入力からテキストボックス内の特定の文字列を識別したいフラッシュ

(userWords.text == firstWord)場合は{ スコア=スコア+1; }

この例ではスコアに1を加えていますが、ユーザーがスペースを1つ追加した場合、テキストボックスには単語全体ではなく2つ目の単語が表示され、スコア変数に値が追加されません。

問題はテキストボックス全体が1つの文字列全体として表示されることにあります。代わりに、私はそれを分割したいので、word1はスコアに1を加え、word2はスコアに1を加えます。

私はこの問題と非常に混同しています。

答えて

0

StringHelperクラスのtrim()メソッドを使用できます。これにより、指定された文字列の前後にcharパラメータに一致するすべての文字が削除されます。 Adobe livedocsのStringクラスページの一番下にある例でクラスを見つけることができます。 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; };