0

私はこの問題で非常に長い間立ち往生しており、すでに何度も提起され、議論されてきました. タスクはまだ単純なものであり、実際にはすでに非常に多くの時間を費やすべきではありません: 埋め込みフォント (Arial 以外) を使用してテキスト フィールド内のいくつかの単語を太字にすることです。

b タグは、Flash が太字をネイティブに認識するフォント (Arial など) を使用している場合にのみ機能するようですが、私は通常、中、太字、黒の 4 つの太さのフォントを使用しています。中程度の太さの本文テキストの太字の単語には黒の太さが必要です。

私は文字通り何十ものテストを行いましたが、すべて「クラシック」テキストフィールドを使用して失敗し、重みごとに1回フォントを埋め込み、htmlTextを使用しました。タグb、span、emを使用して、埋め込みダイアログで可能なすべての設定を試しました-TextFormat(太字、フォント) または StyleSheet (fontWeight、fontStyle、fontFamily)...

結論: 1 つの textField に 2 つの異なる埋め込みフォントを設定する方法はありません。

問題は確実にフォントの埋め込みに関連しており、次のデバッグ ヘルパー関数で確認されています。

/**
 *  Debug helper: trace embedded fonts
 */
function trace_embedded_fonts():void
{
    var fonts:Array = Font.enumerateFonts();
    for ( var i:int = 0; i < fonts.length; i++ )
       trace( fonts[ i ].fontName + " - " + fonts[ i ].fontStyle + " - " + fonts[ i ].fontType );
}

/**
 *  Debug helper: Trace format
 */
function trace_classic_textfield_format( tf:TextField ):void
{
    trace( "trace_tlf_textfield_format( " + tf.name + " )" );
    trace( "  font = " + tf.getTextFormat().font );
}

それぞれ出力しますMaven Pro - regular - embedded(フォントを4回、重みごとに1回埋め込んだにもかかわらず、この1行だけです-そしてはい:それらに慎重に名前を付け、DF3とDF4で、またエクスポートせずにactionscript用にエクスポートしようとしました)、およびfont = Maven Proすべてシーンの textField インスタンス、適用されているスタイルに関係なく (埋め込みフォント (*最後にある) とシステム フォントの両方を選択しようとしました)。

要するに、フォントがおかしいのですが、どうしようもありません。

私の質問は、新しいテキスト レイアウト フレームワーク (TLFTextField) に関するものです。これで実現できますか?

テキストは XML から読み込まれ、em、b などの単純なタグが含まれていますが、それらをフロー タグに書き換えることはできません。

私は TextConverter クラスを介して利用可能な変換を試しました - like var tf:TextFlow = TextConverter.importToFlow(hyperText, TextConverter.TEXT_FIELD_HTML_FORMAT);- cf. http://help.adobe.com/en_US/as3/dev/WS14c3067b34b57c6d4a97343b122ab36a52f-7ffb.html#WS14c3067b34b57c6d4a97343b122ab36a52f-7ff9 - しかし、各タグのスタイルを設定する方法と、既に追加されている TLF テキスト フィールドに TextFlow を適用する方法がわかりませんFlashステージで手動?

4

1 に答える 1

1

参考までに、私は TLFTextFields の使用を断念し、別のフォント(Flash が太字を理解できるもの) を使用してこの問題を回避しました - 話の教訓は、この問題が現在 Flash の TextFields に対する残酷な制限であるということです。

もう 1 つ: 太字のテキストは、(使用する必要がある各スタイルの) TextFields が最初からステージに存在しない限り、ステージに動的に追加されたテキストフィールドでは機能しません (私は 2 つのテキストフィールドに白で「テスト」を残しました)それらを非表示にする白い背景)。

今後の注意: このような問題については、「Angry Video Game Nerd」風にビデオを作成してください。

于 2011-10-12T09:26:16.743 に答える