0

简而言之
,我有一个 flash 应用程序(为 flash lite 制作的 - actionscript 2)。当我在我的应用程序中加载一个XML文件并在一个对象中处理它时。我在文本字段中得到正确的 html 输入。
但是,如果我对 object 进行硬编码,所有 html 标记都会从 .htmlText 属性中消失,并且在文本前面放置了代码。我打算对对象进行硬编码,因为加载速度比 xml 快很多。

长话短说:string.html = true;删除所有跨度标签,而我需要那些。如何在我的文本字段的 htmlText 中获取跨度标签?

更多信息如下

在我的应用程序中,我创建了文本字段,将一些文本放入其中,然后设置正确的 x 和 y 值,以便它们都很好地放在彼此下方。

函数内部:

//ABOVE I CREATE TEXTFIELD USING THE .CREATETEXTFIELD FUNCTION
this["text" + this._textFieldCounter].html = true;
this["text" + this._textFieldCounter].multiline = true;
this["text" + this._textFieldCounter].wordWrap = true;
this["text" + this._textFieldCounter].autoSize = true;
this["text" + this._textFieldCounter].styleSheet = this._styleSheet;
this["text" + this._textFieldCounter].condenseWhite = true;
this["text" + this._textFieldCounter].htmlText = "<span class=\"page\">" + strHtmlText + "</span>";
//trace(this["text" + this._textFieldCounter].htmlText);

当我跟踪 htmlText 我得到

<P ALIGN="LEFT">
<FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">
//here comes the strHtmlText
</FONT>
</P>

Flash 会自动将那些 p 和 font 标签放在我的文本前面。所以我的样式表不会显示正确的样式。我如何摆脱最初的对齐和字体标签,但仍将文本字段保留为 html?

编辑
通过设置文本格式,我找到了解决这个问题的方法......但是
我有一个新问题:
在我的 strHtmlText 中有跨度标签(<span class="text-in">blabla</span>),但这被过滤掉了。为什么 ?如果没有这些样式,我的样式表什么也做不了。

(文本从数组中加载)

4

1 回答 1

1

它必须与您将属性分配给 TextField 的顺序有关。它应该是:1.设置field.htmltrue,2.分配styleSheet,3.设置htmlText。必须在分配 htmlText 之前设置 styleSheet - 我最初发布了指向 as3 文档的链接,但对于 AS2 和 AS3 都是如此。

试试这个:在新的 AS2 FLA 的舞台上放置一个 TextField。将其类型设置为动态。将其命名为“ _textField”。将字体设置为 Verdana,16px,黑色。输入“错误”。或类似文本字段的内容,以便其中包含一些文本。单击“嵌入字体”,确保包含足够数量的字母,例如 ascii 或 Latin-1。在时间轴上,将此代码输入电影的第一帧。

var style:TextField.StyleSheet = new TextField.StyleSheet();
style.parseCSS("p {font-family:Verdana; font-size:12px; color:#FF0000;}");
_textField.html = true;
_textField.styleSheet = style
_textField.htmlText = "<p>This is a test.</p>";
trace (" new text:"+_textField.htmlText);

现在,当您运行程序时,它应该将文本更改为“这是一个测试”,将颜色更改为红色,将字体大小更改为 12 像素。它在我的电脑上。此外,跟踪打印分配给的完全相同的文本htmlText

现在返回并交换分配styleSheethtmlText属性的行。重新运行程序。它将包含您抱怨的所有额外标签。

于 2010-12-19T18:07:11.437 回答