Flex /FlashAS3のハイブリッド状態で存在するFlex4プロジェクトがあります。ウィンドウのベースコンポーネントでスタイルシートを宣言しました。
<fx:Style source="styles/styles.css" />
そして、私のすべてのFlexコンポーネントはこのフォントを表示できます。スタイルシートは次のようになります。
@font-face {
src: url("../fonts/Whitney-Light-Pro.otf");
fontFamily: WhitneyLight;
advancedAntiAliasing: true;
}
...
.subBranding {
fontFamily: WhitneyLight;
fontSize: 20;
color: #000000;
}
また、Flexは、subBrandingの指定されたstyleNameで指定されたフォントを表示できます。TextFormatオブジェクト内でこれらのフォントを参照しようとすると、問題が発生します。適切なフォント名(「ホイットニーライト」)でそれらを参照できます。テキスト/フォントを含むTextFieldでembedFontsがtrueに設定されていない限り、表示されます。これは、実際にフォントがインストールされていることが原因である可能性があります。私がそれらをホイットニーライトと呼ぶとき:
new TextFormat("WhitneyLight", 18, 0x000000);
TextFormatによると、「WhitneyLight」は存在しないため、embedFonts = falseを使用すると、Timesまたはその効果が得られ、embedFonts = trueを使用すると、何も起こりません。次に、Fontオブジェクトに関する限り、フォントを列挙しました。
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 + ".");
}
そして、私が得る出力は次のとおりです。
Fontarray length: 1
FONT 0:: name: WhitneyLight is embedded as type: embeddedCFF.
私の理解では、私のフォントは埋め込まれています。一体何?
何か案は?