2

XMLファイルからロードされたhtmlテキストを使用する動的テキストフィールドがあります。

XML:

<someText><![CDATA[I am <i>some</i> text.]]></someText>

ご覧のとおり、これは通常の斜体を使用しています。フォントをすべての種類、すべてのグリフに埋め込みましたが、斜体のテキストが表示されていません。私のAS3:

フォント変数:private var regularFont:Font = new myFontRegular();

myFontRegularは、埋め込みダイアログを使用して埋め込まれますが、斜体ではなく通常に設定されます。

テキストフィールドのフォーマット:bodyFormat.font = regularFont.fontName;

テキストフィールドを設定するには:

bodyField.embedFonts = true;
bodyField.defaultTextFormat = bodyFormat;
bodyField.multiline = true;
bodyField.wordWrap = true;
bodyField.antiAliasType = "advanced";
bodyField.selectable = false;

次に、テキストフィールドをhtmlTextに設定し、コンテンツを指定します。

bodyField.htmlText = pageBody;

pageBodyは、XMLから供給される変数です。

OK、これで設定されましたが、斜体のテキストが表示されません。これは、埋め込みフォントが斜体ではなく通常に設定されているためだと思います。たとえば、文の途中でイタリックを使用するにはどうすればよいですか?私はグーグルでフォントをコードに直接埋め込むためのさまざまな方法を試しましたが、同じ問題です。

これは以前私にとってはうまくいきました、私はこれの何が悪いのか理解していません。さらに投稿する必要がある場合は、お知らせください。

ありがとう。

4

1 に答える 1

2

埋め込みフォントの適切な設定を使用することをお勧めします。以下のように、familyNameを使用してフォントファミリセットの名前を指定する必要があります(斜体、太字、通常の場合も同じです)。

    [Embed(source="asset/arial.ttf",
        fontFamily = "Arial",
        unicodeRange = "U+0009,    U+00A9,U+00AE,U+00B0,U+00B7,U+00A3,U+00A7,    U+0021-U+002F,    U+003A-U+0040,     U+005B-U+0060,      U+007B-U+007D,       U+00A0,      U+00B4,       U+0030-U+0039,      U+0041-U+005A,      U+0061-U+007A,     U+00B4,U+2032,U+2033,U+2019,U+2013, U+00E9,U+00C9, U+2022, U+2026",
        mimeType="application/x-font-truetype",
        embedAsCFF="false"
        )]
    private var arialImported:Class;
    [Embed(source="asset/arialbd.ttf",
        fontFamily = "Arial",
        fontWeight = "bold",
        unicodeRange = "U+0009,    U+00A9,U+00AE,U+00B0,U+00B7,U+00A3,U+00A7,    U+0021-U+002F,    U+003A-U+0040,     U+005B-U+0060,      U+007B-U+007D,       U+00A0,      U+00B4,       U+0030-U+0039,      U+0041-U+005A,      U+0061-U+007A,     U+00B4,U+2032,U+2033,U+2019,U+2013, U+00E9,U+00C9, U+2022",
        mimeType="application/x-font-truetype",
        embedAsCFF="false"
        )]
    private var arialBoldImported:Class

そうすればうまくいくはずbodyFormat.font = "myFontFamilyName";ですが、スタイルシートオブジェクトを適用し、すべて(コンテンツ)をPタグでラップする必要があると思います

var m_oStylesheet = new StyleSheet();
m_oStylesheet.parseCSS("P{font-family:myFontFamilyName; }");
bodyField.styleSheet = m_oStylesheet;

StyleSheetに関するこのエントリもご覧ください。

よろしくお願いします

于 2012-09-05T13:48:21.797 に答える