0

入力されたテキストを元のテキストと比較するプログラムを作成しています (暗記を支援するため)。

文字が間違っているときはいつでも、文字を赤くしたい. ただし、間違った文字の textField を設定するためにループすると、次のようになります。

function checkAgainstBible(inputText:String):void
{
    var outputTextL:String = ""
    for(var n:Number = 0; n < inputText.length; n++)
    {
    var inputTextL:String = inputText
    var specLetter:String = inputTextL.charAt(n);

        if(inputText.charAt(n) != bibleVerse.charAt(n))
        {
            outputTextL = outputTextL + specLetter
            outputText.text = outputTextL;
            outputText.setTextFormat(red, n, n+1);
        }
        else
        {
            outputTextL = outputTextL + specLetter
            outputText.text = outputTextL;
            outputText.setTextFormat(green, n, n+1);
        }

}

古いものを上書きして、最後の文字だけがフォーマットされるようにします。どうすればこれを回避できますか?

編集HTML テキストを使用できますが、後でスペースを再挿入したいのですが、HTML テキストが文字列 specLetter に追加する余分なテキストではそれを行うことができませんでした。/編集

4

1 に答える 1

0

最初にテキスト全体を設定してから、テキスト形式を設定できます

function checkAgainstBible(inputText:String):void
{
     outputText.text = inputText;

    for(var n:Number = 0; n < inputText.length; n++)
    {
        var inputTextL:String = inputText;
        var specLetter:String = inputTextL.charAt(n);

        if(inputText.charAt(n) != bibleVerse.charAt(n))
        {
            outputText.setTextFormat(red, n, n+1);
        }
        else
        {
            outputText.setTextFormat(green, n, n+1);
        }

    }
}
于 2013-10-27T08:46:12.373 に答える