0

CSSスタイルを宣言するためにファイルを使用します。

/* CSS file */
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace view "com.myviews.*";
@namespace comp "com.myviews.mycomponents.*"; 

@font-face {
    font-family:arial_s;
    src:url("Fonts/Arial.ttf");
    embed-as-cff:true;
    font-weight:normal;
    font-style:normal
}

@font-face {
    font-family:arial_mx;
    src:url("Fonts/Arial.ttf");
    embed-as-cff:false;
    font-style:normal;
    font-weight:normal;
}

global {
    font-family:arial_s; font-size:12.5;  
}

s|DropDownList {
    cornerRadius:0;
}

Q1:s | DropDownListの上の行で、この警告が表示されます。

The CSS type selector 'spark.components.DropDownList' was not processed, because the type was not used in the application.

ただし、これはアプリケーションで使用され、ここでその値を変更すると効果があります。この警告が表示される理由はありますか?

Q2:アプリケーションをデバッグモードで実行すると、次の警告が表示されます。

warning: incompatible embedded font 'arial_s' specified for mx.core::UITextFormat. This component requires that the embedded font be declared with embedAsCFF=false.

上記のsparkコンポーネントの属性を使用したため、警告が表示されglobalます。これにより、一部のmxコンポーネントを含むすべてのコンポーネントに属性が適用されます。ここで重要なコンポーネントは、DataGridセルのテキストです。mx.core::UITextFormatのスタイルを個別に定義する方法を理解する必要があります。このための構文は何ですか?私は試した:

mx|UITextFormat {
    font-family:arial_mx;
}  

しかし、それは機能しません。何をすべきかわからない。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UITextFormat.html

4

3 に答える 3

2

UITextFormatのドキュメントには、CSSスタイルは含まれていません。

これは単なる予感ですが、UITextFormatは実際にはUITextFieldに適用される単なる形式であるため、フォントスタイルをUITextFieldオブジェクトに適用するだけでよい場合があります。

mx|UITextField {
    font-family:arial_mx;
}

DropDownListに関する最初の質問に関して、DownDownListが実際にはアプリケーションプロジェクトではなくライブラリプロジェクトにある可能性はありますか?その場合は、ライブラリプロジェクトのdefaults.cssを作成できます。

[編集]

フォントの問題が気になりました:)DefaultGridItemRendererを調べました:UITextFieldを拡張します。したがって、埋め込みフォントを使用するには、embedFontsプロパティをtrueに設定する必要があります。次に、埋め込みフォントを参照するUITextFormatオブジェクトも必要です。

DefaultGridItemRendererを拡張してこれを行うこともできますが、Adobeがこれを簡単にしたのではないかと思い、次のDataGridスタイルを調べました。モバイル以外のアプリの場合、DataGridドキュメントはITextLayoutFormatを示しています。これは、私がここにリンクしているものです。

埋め込みフォントが実際にDataGridで使用されているかどうか疑問に思っています。これは、デフォルトのレンダラーがそれらを使用しないように見えるためです(DataGridが指示しない限り)。

実際、cssはフォントを2回(?)埋め込みているので、DataGridでスタイルを適切に設定することにより、1回だけ行う必要があると思います。

s|DataGrid {
    font-family:arial_s;
    fontLookup: embeddedCFF;
    renderingMode: cff; 
}
于 2012-05-23T18:55:10.883 に答える
0

私の場合、次の設定により、埋め込みフォントの問題がすべて修正されます。

  1. MX コンポーネントで Flash Text Engine を使用する」を「プロジェクト プロパティ > Flex コンパイラ」でチェック

  2. styles.css 内に次の行を追加します。

    global {
        textFieldClass: ClassReference("mx.core.UIFTETextField");
    }
    
于 2015-02-11T12:44:15.867 に答える
0

私もこれに遭遇しました。MX コンポーネント セットで Flash Text Engine を使用する必要があるかもしれません。コンパイラ オプションでこれを行うことができます。

Flash Builder で、[プロジェクト プロパティ] > [Flex コンパイラ] に移動し、[MX コンポーネントで Flash テキスト エンジンを使用する] をオンにします。

于 2014-11-20T07:02:25.743 に答える