我正在编写一个程序,其中输入的文本与原始文本进行比较(用于记忆帮助)。
每当一封信错了,我希望这封信变成红色。但是,当我循环它以将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
答案 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);
}
}
}