1

我有一个涉及 Flash 文本和超链接的奇怪错误,带有<a>标签的 TextField 中的 htmlText 似乎截断了周围的空间:

输出

一旦我将光标放在文本上,它就会自行“修复”:

鼠标悬停输出

这是 textField 中的 HTML:

<p>The speeches at both the <a href="http://www.demconvention.com/speeches/" target="_blank">Democratic National Convention</a> last week and the <a href="http://www.gopconvention2008.com/videos" target="_blank">Republican National Convention</a> this week, have been, for me at least, must see TV.</p>

当我禁用附加到它的 styleSheet 时,效果仍然存在,但是将鼠标放在它上面并不能修复间距。我正在使用“抗锯齿以提高可读性”,并嵌入了所有大写字母、小写字母、数字和标点符号。我还要指出,如果我将渲染设置更改为“使用设备字体”,错误就会消失。

有什么想法吗?

4

6 回答 6

1

确保你的 styleSheet 声明了它应该对 Anchors 做什么。如果您使用 CSS,那么您显然正在使用 htmlText .

将以下内容添加到您的 CSS 中,并确保它在样式、宽度和大小方面与文本的常规样式具有相同的设置。唯一应该不同的是颜色。

一条链接
{
   字体系列:sameAsReg;
   字体大小:12px;//注意flash省略了px和pt之类的东西。
   颜色:#FF0000; //红色的
}

确保您嵌入的字体在库中并被实例化到您的代码中。当您只能在运行时从库中加载字体然后您可以在任何地方使用它时,通过 UI 嵌入每个文本字段是很愚蠢的。

您还可以在编译时导入多种字体,并通过 <class span="someCSSClass">Some Text</span><class span="someOtherCSSClass">Some Other Text</span> 在同一个文本字段中使用它们

祝你好运,我希望这会有所帮助。

于 2008-09-24T08:46:36.560 回答
1

我有同样的问题。如果将 autoSize 设置为 center,它就可以解决这个问题。我不知道为什么,但它确实解决了它。这似乎是一个 Flash 错误。

于 2011-02-24T17:29:24.257 回答
1

圣牛也有同样的问题。显然,您设置变量的顺序很重要。看看这个线程的第六个回复。我还注意到这只发生在 AntiAliasType.ADVANCED 中,这是 TextField 的默认设置。

_description = new TextField();
_description.selectable = false;
_description.width = WIDTH; // Global.
addChild(_description);

var myriadPro:Font = new MyriadPro(); // Embedded font.
var style:StyleSheet = new StyleSheet();

var styleObj:Object = new Object();
styleObj.fontFamily = myriadPro.fontName;
styleObj.fontSize   = 13;
styleObj.textAlign  = "left";
styleObj.color      = "#FFFFFF";

style.setStyle("p", styleObj);
style.setStyle("a:link", styleObj);
style.setStyle("a:hover", styleObj);

_description.autoSize = TextFieldAutoSize.LEFT;
_description.antiAliasType = AntiAliasType.ADVANCED;
_description.condenseWhite = true;
_description.wordWrap   = true;
_description.multiline  = true;
_description.embedFonts = true;

_description.styleSheet = style;
_description.htmlText = '<p>A short description with an <a href="http://www.example.com/">HTML</a> link that can be clicked.</p>';
于 2009-12-01T17:32:01.110 回答
1

我尝试了以上所有方法,但发现确保 autosize = false 是为我解决的问题。

于 2010-07-20T16:14:44.057 回答
1

我也遇到了这个问题,发现设置以下为我解决了这个问题。

yourTextField.gridFitType = GridFitType.SUBPIXEL;

看起来它可能是由AntiAliasType设置为高级(默认为 PIXEL gridFitType)引起的。我认为它移动了一些副本,因为它试图将字符修复为整个像素值。

于 2010-06-16T15:37:12.170 回答
0

如果您在锚元素之前和之后放置不间断空格,会有什么不同吗?

<p> ... &nbsp;<a ... >Link text</a>&nbsp; ... </p>

诚然,充其量是一种解决方法,但它可能会为您争取一些时间来研究真正的解决方案。

于 2008-09-09T10:59:18.437 回答