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>

添付されているスタイルシートを無効にすると、効果は引き続き発生しますが、マウスをその上に置いても間隔が修正されません。「読みやすさのためのアンチエイリアス」を使用しており、すべての大文字、小文字、数字、および句読点を埋め込んでいます。また、レンダリング設定を「Use Device fonts」に変更すると、バグがなくなることも指摘します。

何かご意見は?

4

6 に答える 6

1

私も同じ問題を抱えていました。autoSizeを中央に設定すると、問題が解消されます。理由はわかりませんが、修正されます。Flashのバグのようです。

于 2011-02-24T17:29:24.257 に答える
1

上記のすべてを試しましたが、autosize=falseを確認することで修正できました。

于 2010-07-20T16:14:44.057 に答える
1

聖なる牛も同じ問題を抱えていました。どうやら、変数を設定する順序が重要です。このスレッドの 6 番目の返信を見てください。また、これは TextField のデフォルトである AntiAliasType.ADVANCED でのみ発生することにも気付きました。

_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

styleSheet が Anchors で行うべきことを宣言していることを確認してください。CSS を使用している場合は、明らかに htmlText を使用しています。「a href」の前に < が表示されるとすぐに、a の CSS クラス定義がすぐに検索され、見つからない場合、結果は異なる外観のテキストになります。 .

以下を 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

私もこの問題を抱えていましたが、次のように設定すると解決しました。

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 に答える