2012-04-06 8 views
1

私はそうのように自分のアプリケーションに埋め込まれています:以下とFlexは、private var arialという埋め込みArialフォント変数にバインドします。文字列?

[Embed(source="/assets/arial.ttf", fontName="Arial")] 
private const arial:String; 

Flexのエラー:

警告:互換性のない埋め込みフォント 'Arialの' mx.coreに指定さ::のUITextField(UITextField75)。このコンポーネントでは、埋め込みフォントをembedAsCFF = falseで宣言する必要があります。

上記をprivate const embArialに変更します。文字列。エラーに乗る。どうしてこれなの?これについての説明の内部は何ですか?

fontNameを変更しても解決されません。変数をArialに変更すると、文字列が解決されます。 arialに変更する:クラスは解決しません。非常に独特です。これは、変数名arialにバインドされているようです。

フォントに関するチュートリアルや仕様のいずれも、フォントに埋め込み変数がバインドされているとどうなるかについて実際には触れていません。

答えて

2

コンポーネントがMX(Halo)の場合、embedAsCFFをfalseにします。

Sparkコンポーネントでは、asCFF:trueを埋め込みます。

CSSの実装:

スパーク例:

 
@font-face 
{ 
    font-family: "Myriad Web Pro"; 
    src: url("./assets/fonts/MyriadWebPro.ttf"); 
    font-weight: normal; 
    embedAsCFF: true; /* Spark */ 
    advancedAntiAliasing: true; 
    unicodeRange: 
     U+0041-U+005A, /* Upper-Case [A..Z] */ 
     U+0061-U+007A, /* Lower-Case a-z */ 
     U+0030-U+003F, /* Numbers [0..9] */ 
     U+0020-U+002F, /* Space + Punctuation [ !"#$%&'()*+,-./ ] */ 
     U+003A-U+0040; /* Special Chars [ :;[email protected] ] */ 
} 

MXヘイロー例:Flexで

 
@font-face 
{ 
    font-family: "Myriad Web Pro"; 
    src: url("./assets/fonts/MyriadWebPro.ttf"); 
    font-weight: normal; 
    embedAsCFF: false; /* Halo */ 
    advancedAntiAliasing: true; 
    unicodeRange: 
     U+0041-U+005A, /* Upper-Case [A..Z] */ 
     U+0061-U+007A, /* Lower-Case a-z */ 
     U+0030-U+003F, /* Numbers [0..9] */ 
     U+0020-U+002F, /* Space + Punctuation [ !"#$%&'()*+,-./ ] */ 
     U+003A-U+0040; /* Special Chars [ :;[email protected] ] */ 
} 

、私はそれが簡単にフォントのためのCSSで動作するように見つけます。ちょうどあなたのメインアプリで、あなたのスタイルシートをリンク:

<!--- CSS style --> 
<fx:Style source="assets/css/common.css" /> 

あなたが埋め込むことを好む場合は、トランスコーディングのためのタイプClassでなければなりません。

埋め込み実装:あなたのサイトに埋め込むには

[Embed(systemFont = "Arial", fontWeight = "Regular", fontName = "Arial", mimeType = "application/x-font", embedAsCFF = "false", unicodeRange = "U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+00A1-U+00A1,U+00A3-U+00A3,U+00A9-U+00A9,U+00AE-U+00AE,U+00B0-U+00B0,U+00BC-U+00BE,U+00BF-U+00BF,U+00C0-U+00FF,U+2013-U+2014,U+2018-U+2019,U+201C-U+201D,U+2022-U+2023,U+2120-U+2120,U+2122-U+2122")] 
    private static const Arial:Class; 

、それぞれスパークまたはMXヘイローコンポーネントのembedAsCFF=trueまたはembedAsCFF=falseを追加します。

+0

私は答えを感謝し、私はこれをすべて知っています。問題は、flexがなぜarialと呼ばれる変数にグローバルにバインドされているのか、なぜ、どのように特有であるかという点です。 – MetaChrome

+1

私は答えが次のようなものだと思います。フォント(または画像)を埋め込むときには、コード内でその場所を参照する必要があります。埋め込まれたアセットは、コードで使用できる変数に関連付けられています。この変数をStringに変更すると、エラーが消えてしまいました.b/cがアソシエーションに失敗したと仮定しています。この変数は、後でこのクラスのインスタンスをインスタンス化してコード内で参照できるように、クラスとして型指定する必要があります。 –

+0

変数:var arialがStringかクラスかどうかにかかわらず、それは消えませんでした。しかし、私はあなたがこれを好奇心の質問としては適切なものではなく答えを求めないことを勧めます。 – MetaChrome

1

このAdobe page has the syntax you needは、メタデータ(注:CSSを使用してフォントを埋め込むこともできます)を使用して、フォントをActionscriptに埋め込むために使用します。

関連する問題