0

我目前对 Flex 3 htmlText 有两个问题。

1)当我设置我的文本的htmlText时:

myText.htmlText = <存储在我的mysql数据库中的html文本>

它计算高度错误。在大多数情况下,会在文本上方和下方添加大量填充(或空白)。我不确定会发生什么,但它计算的 textHeight 比正常情况要高。

2)如果我把 <span> 标签放在我的 html 中,它会自动将它们剥离(而不是仅仅忽略它们)。我正在使用 span 标签来动态查找我的某些文本。例如:

<span class="salutation">亲爱的,</span> <span class="tag">[名字]</span>

插入到我的 htmlText 中,我使用它们来解析我的变量数据的称呼和标签。

有谁知道这两个问题的任何解决方案?关于如何解析html片段的任何替代想法?有什么方法可以改进 htmlText?如何正确测量 textHeight 和/或删除填充?

谢谢!

4

2 回答 2

1

基本上,标签需要明确设置宽度和高度,以便 flex 正确计算这些元素的高度。此外,您可以使用:

invalidateSize();
validateSize();

强制进行尺寸验证,这有时会有所帮助!

于 2011-03-09T21:21:15.687 回答
0
  1. 在使用任何 XML 之前添加这两行:

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

    这应该注意文本上方和下方的添加行。

    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>
    

    这会导致您的 TextField 显示:

    (newline)
    (newline)
    This is a test.
    (newline)
    (newline)
    
  2. styleSheet如果属性设置不正确,Flash 插件将删除所有 HTML 标记。因此,在您的情况下,它将根据您使用或指定的任何字体信息删除<span>标签并添加自己的标签<P>和标签(在设置后尝试跟踪 htmlText - 您会看到)。如果您想保留自己的标签,则必须将 TextField 的属性设置为实际的样式表。<FONT>defaultTextFormatsetTextFormatstyleSheet

  3. 使用 HTML 标签解析出您需要的信息是一种有效的方法。我通常使用像 {0} 这样string.replace ()的编号占位符并插入动态值。

于 2011-01-12T01:05:06.697 回答