2012-02-27 55 views
0

我在AS3下面的代碼:AS3的htmlText被重新安排自己的字體標籤

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跟蹤

<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

是否有使用<FONT>標籤進行造型的項目要求?支持基本HTML標記的樣式在Flash TextFields中非常有限且有缺陷。我強烈建議使用CSS來使用flash.text.Stylesheet類來設置文本的格式。你會發現它更可靠,而且你的代碼會更乾淨。

檢出this tutorial,以便在TextFields中實現CSS的乾淨實現。

+0

如果您決定使用css和flash,這也是一個不錯的庫:https://github.com/theflashbum/fcss – pkyeck 2012-02-28 07:33:48