Применение setTextFormat к textField более одного раза в AS3

Я пишу программу, в которой введенный текст сравнивается с оригиналом (для запоминания).

Всякий раз, когда буква неверна, я хочу, чтобы буква стала красной. Однако, когда я зацикливаю его, чтобы установить 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 text, добавляемым к строке specLetter. /ИЗМЕНИТЬ


person timo352    schedule 26.10.2013    source источник


Ответы (1)


Вы можете сначала установить весь текст, а затем установить текстовый формат

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);
        }

    }
}
person Pan    schedule 27.10.2013