Open Source Flex 4.5 SDK (Hero) でフォントを埋め込む際に問題がありますが、Flex 4 Open Source SDK でも同じ問題があります。プロジェクト構造の assets ディレクトリにいくつかの ttf ファイルを追加し、次のように CSS ファイルのフォントにアクセスしようとしています。
@font-face {
src: url("../assets/DroidSans.ttf");
fontFamily: DroidSans;
embedAsCFF: true;
}
この特定のフォントは、プロジェクト全体で多数の Spark コントロールに使用する必要があります (これが、embedAsCFF が true に設定されている理由ですが、このパラメーターはオプションであると考えています)。ただし、fontFamily プロパティで設定されている場合、どの Spark コンポーネントもこのフォントを表示しません。フォントを設定しようとするすべてのsparkコンポーネントをコンパイルすると、次のエラーが発生します。
警告: 互換性のない埋め込みフォント 'DroidSans' が (controlName) に指定されました。このコンポーネントでは、embedAsCff=true で埋め込みフォントを宣言する必要があります。
奇妙なことに、embedAsCFF が true に設定されていても、上記のフォントは mx コンポーネントで機能します (この件について調べたところ、mx コンポーネントでは false、spark では true に設定する必要があります)。
上記のコードは Flash Builder でも機能しますが、このプロジェクトはオープン ソース SDK を使用して開発する必要があり、失敗します。
何か案は?確かに他の誰かが同じ問題を抱えていましたか?
次のスクリプトを実行すると、フォントが「埋め込まれている」ことが示されますが、「CFFEmbedded」ではありません。Adobeのドキュメントには、これらは「CFFEmbedded」と言う必要があると書かれています
var fontArray:Array = Font.enumerateFonts(false);
trace("Fontarray length: " + fontArray.length);
for(var j:int = 0; j < fontArray.length; j++) {
var thisFont:Font = fontArray[j];
trace("FONT " + j + ":: name: " + thisFont.fontName + " embedded as type:" + thisFont.fontType + ".");
}
ありがとう
ボブ
[編集]
OK - ようやくフォントを埋め込むことができました。CS4 の SWC、Flash Builder 4 の SWC、CS4 と Flash Builder の両方の SWF を試しました。
最終的な修正
1) Flash Builder 4 でフォントを SWF にパッケージ化します 2) 次の CSS を使用して、コンパイル済みの SWF を参照します
@font-face {
cff: false;
src: url('../bin/DroidSansFont.swf');
fontFamily: DroidSansMX;
}
@font-face {
cff: true;
src: url('../bin/DroidSansFont.swf');
fontFamily: DroidSans;
}
クレイジーなことは、「cff: true」ディレクティブの使用です。すべてのドキュメントには、「embedAsCFF」を使用するように記載されています。これは、「cff」属性を使用しているときにエラーをスローします-動作しているようです。
私にはわかりません - 誰かアイデアを教えてもらえますか?