同じfontNameプロパティを持つフラッシュの埋め込みフォント
-
05-07-2019 - |
質問
多くのフォントクラスを含む外部swfを使用して、実行時にFlashサイトのフォントをロードおよび登録しています。 (ライブラリパネルのFlash IDEにエクスポートされ、フレームスクリプトに登録されます)
この特定のケースでは、swfには同じファミリーのさまざまなウェイトが含まれています。例えば。フォントローマン、フォントイタリック、フォントライト、フォントヘビーなど...
フォントは正常に登録されているように見えますが、フォントを使用しようとすると、これらのフォントのfontNameプロパティの一部が同一になります。 3つはローマ文字として表示され、2つは光として表示され、1つは光scとして表示されます。正しいフォントオブジェクトが正しい順序で読み込まれていました。
かなりのテストの後、フォントフォルダー(vista)を確認しました。 Heavyのファイルを開くと、フォントビューアーのタイトルにRomanが表示されます。フォントビューアのタイトルは、私がフラッシュで取得していたものと一致していました。この動作は、このフォントに固有のようです。
fontNameがTextFieldにフォントを割り当てる方法を知っている唯一の方法なので、動的な見出しにその素敵な重いフォントを使用する方法に困惑しています!
これはタイプ1フォントです
誰かが原因、解決策、または回避策を提案できますか?
解決
ありがとう、それについてあなたの権利だと思います。
しかし、フォントを埋め込み、名前を設定する方法を見つけました。
まず、CrossFontを使用してType 1ポストスクリプトフォントを.otfに変換しました
cs4で利用できるようになった[embed()]機能を使用して、fontFamily属性を使用して埋め込みフォントのfontNameプロパティを設定することができました。
以下のコードでは、名前を" BlaaDeeBlaa"に設定しています。 TextFormatはそれを受け入れ、埋め込みフォントを表示します。
[Embed(source="assets/FontFileName.otf",
fontFamily="BlaaDeeBlaa",
mimeType="application/x-font")]
var BlaaDeeBlaa:Class;
var CH:Font = new BlaaDeeBlaa();
var testTxt:TextField = new TextField();
testTxt.defaultTextFormat = new TextFormat("BlaaDeeBlaa",28,0x000000,true);
testTxt.embedFonts = true;
testTxt.text = Font.enumerateFonts(false)[0].fontName;
testTxt.autoSize = "left";
addChild(testTxt);
n.b。このメソッドを使用して埋め込むことができるのは、OpenType(.OTF)およびTruetype(.TTF)のみです
他のヒント
これは、ソフトウェア(Flash)ではなく、フォントの問題のようです。
フリーフォントの場合、フォントファミリの作成者が1つのフォントをベースとして使用し、顔のさまざまなスタイルに合わせてそのコピーを編集した可能性があります。ファイル名を変更したばかりで、内部名を変更するのを忘れた可能性があります。
何らかの方法で自分で名前を編集できる場合もありますが、これについてはあまりわかりません。