2009-10-13 11 views
6

このトピックに関する質問はありますが、HTMLに関する質問があります。 Flexアプリケーションで外部スタイルシートを使用する際の良いコンベンションは何ですか?スタイルシート(スタイルシートの名前とその内容)をどのように分割しますか?Flex外部スタイルシートの表記

+0

もう一つの関連する質問:CSSを変更すると、Flexアプリケーションが再コンパイルせずに変更されるように、コンパイル済みファイルの外にCSSを作成する方法はありますか? – ustun

答えて

0

Flexは私が扱ったものではありませんが、私はいくつかの研究を行いました。

注:あなたは、 アプリケーションで使用されるスタイルシートの 数を制限しようとする必要がありますし、

<mx:Style source="com/example/assets/stylesheet.css" /> 

Flex Quick Start: Building a simple user interface: Styling your componentsは、この意見:リモートスタイルシートを呼び出すためのコードはこれですように見えますスタイルシート は、 アプリケーションの最上位ドキュメント( にタグが含まれているドキュメント)にのみ設定してください。 子供のスタイルシートを 文書に設定すると、予期しない結果が発生する可能性があります。

これは、複数のスタイルシートが実際には使用できないように思われることを示しています。あなたのスタイルシートを整理することが好きなように思えますが、アプローチの考え方についてはOrganizing Your StylesheetsArchitecting CSSをチェックしてください。クラスと基本タグがあるようですが、W3C stylesheet specificationsはFlexスタイルシートの仕様とは異なります。

Flex以外の開発者として、名前空間は名前空間を整理する方法として面白そうです:How to use the new CSS syntax in Flex 4

+0

アプリケーションのトップレベルでのスタイルシートの使用についての情報をありがとう – asawilliams

+0

答えの1つが問題を解決しましたか?はいの場合は、良い答えを受け入れることを検討してください。さらに詳しい情報が必要な場合は、あなたが受け入れることができるように質問を更新することをお勧めします。 – artlung

+0

「あなたのスタイルシートを整理する」という記事は、CSSファイルをどのように整理するかという問題に取り組んでいますが、Flexには関係していないようです。したがって、私は答えを受け入れることができません – asawilliams

2

プロジェクトを公開するときに外部CSSファイルがコンパイルされます。

Flexを使用して実行時にCSSをロードする方法があります。 CSSファイルをSWFファイルにコンパイルし、実行時にStyleManager.loadStyleDeclarationsを使用してロードすることによって実行できます。

詳細については、LiveDocs on Stylesheets at Run Timeを参照してください。

1

我々はスタイルシートを組織で使用する一部の規則:

  • は、基本アプリケーションをスキニングのすべてのデータを保持している1つのmain.cssスタイルシートを持っています。
  • fonts.cssスタイルシートは、メインアプリにすべてのフォントを保存するようにしてください。これらのフォントは非常に乱雑です。

main.cssスタイルシートは、<mx:Style source="main.css"/>タグを介してメインswfに含まれています。私たちは可能な限りアプリケーションを読み込み、すべてがロードされたらすぐにテキストを表示する必要がある場合(広告サイトの場合はビデオを再生することがあります)、メイン要素をフェード/トゥイーンして実行時にStyleManager.loadStyleDeclarationsを介してfonts.cssを実行します。

  • 我々は管理パネルを持っている場合は、メインのアプリがそれを必要としないので、我々は、実行時にロードadmin.cssスタイルシートを持っています。

のFlex 4を使用して(私たちは通常Themeにスキンのセット全体を作成するので、私たちはもうそれよりもCSSを分割する必要はありませんので、スタイルシートは、コンポーネントだけにそれらのスキンを適用すると、かなりリーンです)。私は、スタイルシートをもっと小さくする(例えば、 "pages.css"、 "comments.css"、 "popups.css"、または "controls.css"など)ように分割することはしません。リターンはほとんどありません。これはHTMLとよく似ていますが、HTMLはプレゼンテーションにCSSが必要だからです。 FlexはCSSを一切使わずに済みます。

私たちのうちの一人は、通常、ほとんどのスキンをすぐに開発します(ScaleNineにあるようなデフォルトのワイヤフレーム設定を使用して、Photoshop/Flash/After Effectsを実行します)。再コンパイルする必要はありませんしかし、実行時にロードされた場合は、swfのメインファイルではなく、CSSファイルを再コンパイルするだけで済みますが、ハードコアスキン開発時に役立ちますが、実際には役に立ちません。

私は、主なスタイルシートは開発中に(カスタムテーマで)別々に作成されていました。変更を加えるたびにCSSを別々に再コンパイルしなければならないため、開発がもっと難しくなりました。また、メインアプリケーションも再コンパイルする必要がありました。追跡が難しいバグなどがありました2つの異なるアプリがある。だから私は、メインのアプリの一部をメインのCSSファイルを維持することをお勧めします。

何かを再コンパイルせずにランタイムCSSを望むなら、Ruben's CSS Loaderを試して、the sourceをチェックしてください。しかし、これは実行時パフォーマンスのコストになります。

関連する問題