2008-09-08 43 views
1

我有涉及一个TextField Flash文本和超链接的htmlText了bug与<a>标签似乎截断周围空间:闪存的超链接间距误差

output http://www.anti-pattern.net/tvo/output1.gif

有一次,我把我的光标放在正文中, “修复” 本身:

output with mouseover http://www.anti-pattern.net/tvo/output2.gif

这里是在文本框的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> 

当我禁用附加的样式表时,效果仍然发生,但将鼠标放在它上面并不能修复间距。我正在使用“反锯齿可读性”,并嵌入了大写,小写,数字和标点符号。我还会指出,如果我将渲染设置更改为“使用设备字体”,错误消失。

有什么想法?

回答

0

如果您在锚元素之前和之后立即放置非中断空格,它会有什么区别吗?

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

无可否认,最好的解决方法是,但它可能会花费一些时间来研究真正的解决方案。

1

确保你的styleSheet声明它应该和Anchors做什么。你很明显使用htmlText,如果你使用CSS,只要它在“a href”前面看到<它立即寻找CSS类的定义,当它没有找到它时,结果就是你看到的不同的文本。

将以下内容添加到您的CSS中,并确保它与文本的常规样式具有相同的设置,只要样式,wieght和大小。唯一不同的是颜色。

 
a:link 
{ 
    font-family: sameAsReg; 
    font-size: 12px; //Note flash omits things like px and pt. 
    color:#FF0000; //Red 
} 

确保您所嵌入的字体位于库中并被实例化到您的代码中。只需在运行时从库中加载字体,然后在任何位置使用,就可以通过UI嵌入每个文本字段,这很愚蠢。

您也可以在编译时导入多个字体,并在同一文本框的使用<类跨度=“someCSSClass”>某些文本</SPAN> <类跨度=“someOtherCSSClass”的使用它们>其它文本</span>

祝你好运,我希望这有助于。

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>'; 
1

我也有这个问题,并发现设置以下为我固定它。

yourTextField.gridFitType = GridFitType.SUBPIXEL; 

看起来好像它可能当AntiAliasType设置为高级,默认为像素中的gridFitType所致。我认为它将一些副本转换为尝试将字符固定为整个像素值。

1

我尝试了以上所有,但发现确保autosize = false是为我修复的。

1

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