次の手順では、Flex Builder で新しいモジュールを作成する方法について説明します。新しいモジュールを作成したら、そのモジュールをコンパイルできます。
メインアプリケーションで定義されているかどうかにかかわらず、すべてのクラスをモジュールに含めるには、「最適化しない」を選択します。これによって、インクリメンタルコンパイルのパフォーマンスを改善できます。また、モジュールは、ここで選択したアプリケーションだけでなく、任意のアプリケーションにロードできます。モジュールにすべての依存関係がコンパイルされているためです。
次の例は、この新しいアプリケーションのデフォルトのコンテンツを示しています。
<?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300"> </mx:Module>
Flex Builder では、モジュールをアプリケーションのように実行したり、モジュールのプロジェクトを構築したりすることができます。モジュールが Flex アプリケーションと同じプロジェクトにある場合は、そのアプリケーションを実行すると Flex Builder によってモジュールの SWF ファイルがコンパイルされます。その SWF ファイルが実行時にアプリケーションにロードされます。
モジュールベースの SWF ファイルをスタンドアローン Flash アプリケーションとして実行することや、ブラウザウィンドウにロードすることはできません。1 つのモジュールとしてアプリケーションにロードする必要があります。モジュールを Flex Builder で実行してコンパイルするときは、Adobe Flash Player やブラウザウィンドウを閉じて、エラーを無視する必要があります。Player やブラウザからモジュールに直接要求しないでください。
モジュールの SWF ファイルとメインアプリケーションの SWF ファイルは、通常同じディレクトリにありますが、Flex Builder は、モジュールがある場所(モジュールはアプリケーションと同じディレクトリか、サブディレクトリに配置できます)に関係なく、アプリケーションと同時にモジュールをコンパイルします。
モジュールまたはモジュールのグループごとに独立した Flex プロジェクトまたは ActionScript プロジェクトを作成することもできます。これにより、アプリケーションや他のモジュールとは異なるコンパイラオプションをプロジェクトごとに指定できるので、モジュールのコンパイル方法を詳細に制御できます。また、アプリケーションをコンパイルせずに、モジュールのプロジェクトをコンパイルすることもできます。ただしこの方法では、Flex Builder で開いているすべてのプロジェクトを一度にコンパイルする場合を除き、アプリケーションをコンパイルする前に各モジュールを手動でコンパイルする必要があります。
モジュールをメインアプリケーションとは別にコンパイルする場合、アプリケーションおよびモジュールをデバッグするかどうかによって、デバッグ情報を含めるかどうかを指定する必要があります。詳細については、Flex Builder でのモジュールのデバッグを参照してください。
Flex Builder ワークフローは、単一のアプリケーションにモジュールを関連付ける作業のために設計されています。複数のアプリケーションでモジュールを使用する場合は、ライブラリのコンポーネントまたはクラスにコードをカプセル化して、そのコンポーネントやクラスを各アプリケーションの単純なモジュールに追加することを検討してください。モジュールは、アプリケーション間でのコードの再利用、つまりライブラリの用途で使用するためのものではありません。
プロジェクトのアーキテクチャを設定する際には、モジュールをアプリケーションのプロジェクトに追加するか、モジュールごとに独立したプロジェクトを作成するか、またはすべてのモジュールに対して 1 つの独立したプロジェクトを作成するかを決定できます。
モジュールごとに 1 つのプロジェクトを使用すると、次の利点があります。
モジュールごとに 1 つのプロジェクトを使用すると、次の欠点が生じます。
これと関連する方法は、アプリケーション自体を独立したプロジェクトに登録したままで、すべてのモジュールに対して 1 つのプロジェクトを使用することです。アプリケーションとモジュールの両方でそれぞれ 1 つのモジュールを使用する方法にはいくつかの欠点がありますが、モジュールごとに独立したプロジェクトを使用するのと同様の利点が数多くあります。
すべてのモジュールに対して 1 つのプロジェクトを使用すると、次の利点があります。
すべてのモジュールに対して 1 つのモジュールプロジェクトを使用すると、次の欠点があります。
モジュールごとに独立したプロジェクトを作成するときには、モジュールプロジェクトの出力フォルダをアプリケーションが使用するディレクトリに変更します。また、ラッパーファイルの生成を抑制します。
Flex Builder での各モジュールの個別プロジェクトの作成
${DOCUMENTS}\MainProject\assets
これにより、モジュールのコンパイル出力がアプリケーションプロジェクト(MainProject)のアセットディレクトリにリダイレクトされます。メインアプリケーションでは、ModuleLoader の url プロパティでアセットディレクトリの SWF ファイルを指定できます。このプロパティの値は、出力フォルダによって異なります。
Flex Builder で複数のプロジェクトをコンパイルするのは、共通の操作です。まず、プロジェクトをコンパイルする順序を選択し、次にすべてのプロジェクトを同時にコンパイルします。
Flex Builder でのすべてのプロジェクトの同時コンパイル
メインメニューからプロジェクト/すべてビルドを選択します。
ワークスペース内のすべてのプロジェクトがビルドされます。各プロジェクトの出力フォルダにアプリケーションファイルが追加されます。ビルドの開始前にファイルを自動的に保存することを選択していない場合、ファイルを保存するように要求されます。
ビルドする順序を変更する場合は、ビルド順序ダイアログボックスを使用します。この手順は常に必要であるとは限りません。モジュールを使用するプロジェクトは、メインプロジェクトのアプリケーションのコンパイル時までではなく、実行時までにコンパイルすれば問題ありません。ほとんどの場合は、デフォルトのビルド順序で問題はありません。
ただし、重複する依存関係を排除する場合は、ビルド順序を変更してメインアプリケーションを最初にコンパイルする必要が生じることがあります。その場合は、link-report コンパイラオプションを使用してリンカーレポートを生成します。モジュールをコンパイルするときには、load-externs コンパイラオプションを使用して、直前にシェルアプリケーションが生成したリンカーレポートを使用します。モジュールサイズの削減の詳細については、Flex Builder でのモジュールの最適化を参照してください。
ビルド順序ダイアログボックスが表示されます。
ワークスペース内の別のプロジェクト間の依存関係を作成すると、コンパイラによってプロジェクトのビルド順序が自動的に判断されるため、これらの依存関係は適切に解決されます。
モジュールごとに独立したプロジェクトを使用する場合は、一度に 1 つのモジュールをコンパイルできます。これにより、すべてのプロジェクトを一度にコンパイルする場合や、すべてのモジュールとアプリケーションのファイルを含む 1 つのプロジェクトをコンパイルする場合よりも時間を短縮できます。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート