0

我一直在试图弄清楚一段时间。我通常设法使我的 textFields 正常工作,但这只是让我发疯。

我有这个 TextField,我注入了 HTML 格式的文本(包含在 XML 文件中)。出于某种原因,我几乎所有的标签都被忽略了(<b><i><u>和)。我只能让它正确呈现标签。我可以使用样式表,但我认为它不会使我的列表工作......<ul><li><br />

这是设置的方式:

我注入的文本:

<text>
    <![CDATA[<b>Some bold text </b>and some normal text <br/><u>This text is underlined</u> normal text to compare<br/><i/>This text is italic</i>]]>
</text>

我的 TextField 是如何设置的:

// When my Class' setup method is called, I set those properties
_tf = _transcript.getTextFormat();
_tf.font = "Verdana";
_tf.size = 12;
_transcript.embedFonts  = true;
_transcript.multiline   = true;
_transcript.autoSize    = TextFieldAutoSize.LEFT;
_transcript.wordWrap    = true;

// In an function, later on
_transcript.htmlText = transcript;  // transcript is a parameter. Basically, the XML I wrote above
_transcript.setTextFormat(_tf);

我确实嵌入了Verdana(以及变体)。我通过生成大小报告 跟踪 Font.enumerateFonts() 来确定。如果我在设置后输出 textField 的 htmlText,我会得到:

<P ALIGN="LEFT"><FONT FACE="Verdana" SIZE="12" COLOR="#FFFFFF" LETTERSPACING="0" KERNING="0">Some bold text and some normal text </FONT></P><P ALIGN="LEFT"><FONT FACE="Verdana" SIZE="12" COLOR="#FFFFFF" LETTERSPACING="0" KERNING="0">This text is underlined normal text to compare</FONT></P><P ALIGN="LEFT"><FONT FACE="Verdana" SIZE="12" COLOR="#FFFFFF" LETTERSPACING="0" KERNING="0">This text is italic</FONT></P>

我真的不知道为什么没有任何工作,如果有人有任何想法,我会非常感激!

谢谢

编辑:所以我决定测试我的 XML 中没有 CDATA,并<b>在我的 AS3 代码中添加标签。也没有用。我不明白如何正确嵌入我的字体,但 Flash 拒绝使用它们。

4

1 回答 1

0

好的,为了让它工作,我使用了以下语法:

<mx:Text>
    <mx:htmlText>
        <![CDATA[<b>Some bold text </b>and some normal text <br/><u>This text is underlined</u> normal text to compare<br/><i/>This text is italic</i>]]>
    </mx:htmlText>
</mx:Text>

我没有尝试在您的问题中包含任何额外的脚本,但它似乎可以像这样处理 html 标签。

这里也是我用来检查语法的 livedocs 参考...

http://livedocs.adobe.com/flex/3/html/help.html?content=textcontrols_04.html

回顾您的问题,我刚刚意识到您可能没有使用 Flex,好的,所以这是 Flex 特定的,抱歉。

于 2012-03-01T09:31:28.103 回答