2011-01-11 53 views
0

我目前有兩個Flex 3 htmlText問題。Flex 3 htmlText計算高度方式錯誤並剝離span標籤

1)當我設置我的文字的的htmlText:存儲在我的MySQL數據庫>

它計算高度的方式錯了

myText.htmlText = < HTML文本。在大多數情況下,在文本上下添加大量填充(或空白)。我不確定發生了什麼,但它計算的textHeight方式比平常高。 2)如果我把<範圍內的>標籤放在我的html中,它會自動去掉它們(而不是忽略它們)。我使用span標籤能夠動態地查找我的文本的某些部分。例如:

<跨度類= 「稱呼」 >親愛的,</SPAN > <跨度類= 「標籤」 > [名] </SPAN >

插在我的htmlText,我用他們解析出我的可變數據的稱呼和標籤。

有沒有人知道這兩個問題的任何解決方案?任何關於如何解析出HTML片段的另一種想法?任何方式來改善htmlText?如何正確測量textHeight和/或刪除填充?

謝謝!

XML.ignoreWhitespace = true; 
XML.prettyPrinting = false; 

這應該採取的上方和下方的文字所添加的行的護理:

回答

1

基本上,標籤需要顯式設置寬度和高度,以便Flex能夠正確計算這些元素的高度。此外,您可以使用:

invalidateSize(); 
validateSize(); 

要強制大小驗證發生,有時會有幫助!

0
  1. 你使用任何XML之前添加這兩條線。

    ignoreWhitespace剝離文本節點的前導和尾隨空白。
    prettyPrinting設置爲true時,格式化XML輸出,縮進節點並添加換行符以增加可讀性 - 但也會影響文本輸出。例如,當你有這樣的結構:

    <p><span class="test">This is a test.</span></p> 
    

    Flash將輸出:

    <p> 
        <span class="test"> 
         This is a test. 
        </span> 
    </p> 
    

    這將導致你的文本字段顯示:

    (newline) 
    (newline) 
    This is a test. 
    (newline) 
    (newline) 
    
  2. 的Flash插件將刪除任何HTML標記,如果styleSheet屬性設置不正確。因此,根據您使用defaultTextFormatsetTextFormat指定的任何字體信息,您將刪除<span>標籤並添加自己的<P><FONT>標籤(嘗試在設置後跟蹤htmlText - 您會看到) 。如果您想保留自己的標籤,則必須將TextField的styleSheet屬性設置爲實際的樣式表。

  3. 通過使用HTML標記解析出需要的信息是一種有效的方法。我通常使用編號的佔位符(例如{0}和string.replace())來插入動態值。

+0

我不確定我是否理解第一部分。 如果我有以下代碼: if(dataProvider.allowStyles){ mainText.htmlText = dataProvider.defaultText; } 我會在哪裏放XML.ignoreWhitespace和其他線,他們將如何更改mainText的htmlText? 感謝您的建議! – andrewpthorp 2011-01-12 02:25:50