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 回答