2008-09-08 45 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錯誤。