在AS3中多次将setTextFormat应用于textField

时间:2013-10-26 23:55:25

标签: actionscript-3 textfield settext

我正在编写一个程序,其中输入的文本与原始文本进行比较(用于记忆帮助)。

每当一封信错了,我希望这封信变成红色。但是,当我循环它以将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);
        }

}

它会覆盖旧的,因此只有最后一个字母被格式化。我该如何避免这种情况?

EDIT 我可以使用HTML文本,但我想在之后重新插入空格,而我无法用额外的文本将HTML文本添加到字符串specLetter中。 / EDIT

1 个答案:

答案 0 :(得分:0)

您可以先设置整个文本,然后设置textformat

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

    }
}