我有一个涉及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时,效果仍然会发生,但将鼠标放在它上面并不能修复间距。我使用“Anti-alias for readability”,并嵌入了所有大写,小写,数字和标点符号。我还要指出,如果我将渲染设置更改为“使用设备字体”,则该错误就会消失。
有什么想法吗?
答案 0 :(得分:1)
确保styleSheet声明它应该对Anchors做什么。你很明显使用htmlText,如果你看到&lt;在“a href”之前,它立即查找a的CSS类定义,当它找不到时,结果就是你看到的看起来不同的文本。
将以下内容添加到CSS中,并确保它与样式,格式和大小的文本常规样式具有相同的设置。唯一不同的是颜色。
a:link { font-family: sameAsReg; font-size: 12px; //Note flash omits things like px and pt. color:#FF0000; //Red }
确保嵌入的字体在库中并实例化到代码中。当你只能在运行时从库加载字体然后你可以在任何地方使用它时,通过UI嵌入每个文本字段是愚蠢的。
您还可以在编译时导入多个字体,并使用&lt;在同一文本字段中使用它们。 class span =“someCSSClass”&gt; Some Text&lt; /跨度&GT;&LT; class span =“someOtherCSSClass”&gt;一些其他文字&lt; /跨度&GT;
祝你好运,我希望这会有所帮助。
答案 1 :(得分:1)
圣牛也有同样的问题。显然,您设置变量的顺序很重要。查看this thread上的第六个回复。我还注意到这只发生在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>';
答案 2 :(得分:1)
我也遇到了这个问题,并找到了以下修复方法。
yourTextField.gridFitType = GridFitType.SUBPIXEL;
看起来好像它可能是由AntiAliasType
设置为高级时默认为PIXEL gridFitType引起的。我认为它会将一些副本移动,因为它试图将字符固定为整个像素值。
答案 3 :(得分:1)
我尝试了以上所有内容,但发现确保autosize = false是为我修复它的原因。
答案 4 :(得分:1)
我遇到了同样的问题。如果将autoSize设置为center,则可以解决问题。我不知道为什么,但它确实修复了它。这似乎是一个Flash bug。
答案 5 :(得分:0)
如果你在锚元素之前和之后立即放置非破坏空格会有什么不同吗?
<p> ... <a ... >Link text</a> ... </p>
不可否认,最好是一种解决方法,但它可能会花一些时间研究一个真正的解决方案。