1

私は何年もas3を使用していますが、フォントを操作する必要があるたびに夢中になります:(

私のセットアップ:コードを介して、多くの動的なtextFieldsでmovieClipを埋めています。それらの値は外部XMLから取得されます。

私の問題:私のクライアントは、xml内にhtmlタグを挿入して、それらの一部に太字のテキストを含めることを望んでいます。たとえば、「この部分が太字のこの文字列」が必要です。Xml部分は問題なく、CDATAなどでフォーマットされています。xmlからの値をトレースするとhtmlですが、テキストフィールド内に通常のテキストとして表示されます。

テキストフィールドは(システムフォントではなく)クライアントカスタムフォントを使用しており、グラフィックデザイナーがFlashの埋め込みダイアログパネルを介してフォントを埋め込みます。

何か助けはありますか?


これは、テキストフィールドを埋めるコードの一部です(forループ内にあります)

  var labelToWrite:String = labelsData.label.(@id == nameOfChildren)[VarHolder.activeLang];
    if (labelToWrite != "") {
        foundTextField.htmlText = labelToWrite; 
        // trace ("labelToWrite is -->" +labelToWrite);
    }

そして、トレースは私を出力します

 This should be <b>bold text with b tag</b> and this should be <strong>strong text </strong>.
4

1 に答える 1

2

あなたのコードはよさそうだ。したがって、問題は埋め込みフォントにあります。Flashにフォントを埋め込む場合、個別の太字バージョンは埋め込まれないため、太字バージョンのフォントを埋め込む必要がある場合があります。

いくつかのリソース: フラッシュCS4<b>タグをhtmlTextで

テキスト形式の代わりにスタイルシートを使用してフォントを宣言することで、HTMLテキストが最適に機能することがわかりました。

           var style:StyleSheet = new StyleSheet();
               style.setStyle(".mainFont", { fontFamily: "Verdana", fontSize: 50, color: "#ff0000"            } );
           var foundTextField:TextField = new TextField();
           foundTextField.embedFonts = true;
           foundTextField.autoSize = TextFieldAutoSize.LEFT;
           foundTextField.antiAliasType = AntiAliasType.ADVANCED;
           foundTextField.styleSheet = style;
           foundTextField.htmlText = "<div class=\"mainFont\">" + labelToWrite + "</div>";

参照: フォントが埋め込まれたhtmlTextでレンダリングされたflash as3 xmlcdataboldタグ

他の理由かもしれません:あなたは正しいタイプのフォント(TLF対CFF)を埋め込んでいますか?Flash IDEを使用してtextFieldを作成していない場合、フォントを登録していますか?

Font.registerFont(MyFontClass);
于 2012-09-12T23:50:25.453 に答える