AS3 htmlText自行重新排列字体标签

时间:2012-02-27 13:21:14

标签: flash actionscript-3

我在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正在弄乱我的标签计算。有什么想法可以在这里完成吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

是否有项目要求使用<FONT>标记进行样式设置?使用基本HTML标记进行样式支持非常有限,并且Flash TextFields中存在错误。我强烈建议使用CSS来使用flash.text.Stylesheet类格式化文本。你会发现它更可靠,你的代码也会更清晰。

查看this tutorial以了解TextFields中CSS的干净实现。