我在AS3中有以下代码:
var str:String = '<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">Lo<FONT COLOR="#0000FF">re<FONT FACE="GG Superscript">m</FONT></FONT><FONT FACE="GG Superscript"> Ip</FONT><FONT COLOR="#990000"><FONT FACE="GG Superscript">su</FONT>m i</FONT>s simply dummy text </FONT></P></TEXTFORMAT>';
trace('BEFORE: '+str);
txt.htmlText = str;
trace('AFTER: '+txt.htmlText);
我面临的问题是BEFORE和AFTER跟踪文本是非常不同的。它们如下:
追踪
<TEXTFORMAT LEADING="2">
<P ALIGN="LEFT">
<FONT FACE="Arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">Lo
<FONT COLOR="#0000FF">re
<FONT FACE="GG Superscript">m</FONT>
</FONT>
<FONT FACE="GG Superscript"> Ip</FONT>
<FONT COLOR="#990000">
<FONT FACE="GG Superscript">su</FONT>
m i
</FONT>
s simply dummy text
</FONT>
</P>
</TEXTFORMAT>
追踪
<TEXTFORMAT LEADING="2">
<P ALIGN="LEFT">
<FONT FACE="Arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">Lo
<FONT COLOR="#0000FF">re
<FONT FACE="GG Superscript">m
<FONT COLOR="#000000"> Ip
<FONT COLOR="#990000">su
<FONT FACE="Arial">m i</FONT>
</FONT>
</FONT>
</FONT>
</FONT>s simply dummy text
</FONT>
</P>
</TEXTFORMAT>
似乎htmlText正在重新排列html标签。即使输出是相同的,我需要原来的html,因为我正在制作一个文本编辑器,而AFTER htmlText正在弄乱我的标签计算。有什么想法可以在这里完成吗?
提前致谢。
答案 0 :(得分:0)
是否有项目要求使用<FONT>
标记进行样式设置?使用基本HTML标记进行样式支持非常有限,并且Flash TextFields中存在错误。我强烈建议使用CSS来使用flash.text.Stylesheet
类格式化文本。你会发现它更可靠,你的代码也会更清晰。
查看this tutorial以了解TextFields中CSS的干净实现。