0

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.

私の理解では、私のフォントは埋め込まれています。一体何?

何か案は?

4

1 に答える 1

1

スタイルシートに、「embedAsCFF:false;」というスタイルのフォントの別のセットを埋め込む必要があります。セットする。トレースアウトすると、フォントは「embeddedCFF」ではなく「embedded」タイプとして埋め込まれているように表示され、TextFormatオブジェクトで機能します。正確な答えはありませんでしたが、ColinMoockがFlashCS3 / FlexBuilder3のインタラクティブ機能でデビューしたプレゼンテーションのいくつかのスライドで手がかりを見つけました。彼は[Embed]メタタグを使用してembedAsCFFをfalseに設定して埋め込みました。一致するCSSスタイルがあると思い、勝者が出ました。

これで、WhitneyLightとWhitneyLightFlashができました。1つはSpark / Haloラベルで使用し、もう1つはTextFormat/TextFieldオブジェクトのペアで使用します。

于 2010-09-12T05:33:21.663 に答える