Adobe Flex 3 ヘルプ

モジュールのコンパイル

モジュールをコンパイルする方法は、Flex アプリケーションをコンパイルする方法と似ています。コマンドラインで、mxmlc コマンドラインコンパイラを使用します。次に例を示します。

mxmlc MyModule.mxml 

モジュールをコンパイルした結果として、アプリケーションにロードする SWF ファイルが生成されます。モジュールベースの SWF ファイルをスタンドアローンアプリケーションとして実行することや、ブラウザウィンドウにロードすることはできません。1 つのモジュールとしてアプリケーションにロードする必要があります。Adobe® Flash® Player や Adobe® AIR™Aまたはブラウザからモジュールを直接要求しないでください。

モジュールをコンパイルするときには、モジュールとそれを使用するアプリケーションの両方にある冗長な部分を削除することをお勧めします。このためには、アプリケーションのリンクレポートを作成し、レポートに記載されているモジュールのアセットをすべて外部化します。Flex Builder は、この動作を自動的に実行できます。詳細については、モジュールサイズの削減を参照してください。

モジュールサイズの削減

モジュールサイズは、モジュールで使用されるコンポーネントとクラスによって異なります。デフォルトでは、モジュールにはモジュールのコンポーネントが依存しているすべてのフレームワークコードが含まれます。したがって、アプリケーションのクラスと重複するクラスがリンクされるので、モジュールのサイズが大きくなる場合があります。

モジュールのサイズを削減するには、アプリケーションに含まれているクラスを外部化するようにモジュールに指示することで、モジュールを最適化します。これには、カスタムクラスとフレームワーククラスが含まれます。この結果、モジュールには必要とするクラスのみ含まれ、フレームワークコードと他の依存関係はアプリケーションに含まれます。

コマンドラインコンパイラを使用してフレームワーククラスを外部化するには、モジュールをロードするアプリケーションからリンカーレポートを生成します。このレポートを、モジュールの load-externs コンパイラオプションへの入力として使用します。コンパイラにより、すべてのクラスは、アプリケーションが定義を含むモジュールから外部化されます。この処理は、Flex Builder でメインアプリケーションとは独立したプロジェクトにモジュールがある場合にも必要です。

コマンドラインコンパイラでのリンカーレポートの作成と使用

  1. リンカーレポートを生成し、アプリケーションをコンパイルします。
    mxmlc -link-report=report.xml MyApplication.mxml
    
    

    リンカーレポートのデフォルトの出力場所はコンパイラと同じディレクトリです。この場合は、bin ディレクトリに出力されます。

  2. モジュールをコンパイルし、リンカーレポートを load-externs オプションに指定します。
    mxmlc -load-externs=report.xml MyModule.mxml
    
    

モジュールの再コンパイル

モジュールを変更しても、そのモジュールが同じプロジェクトにある場合は、そのモジュールを使用するアプリケーションを再コンパイルする必要はありません。これは、アプリケーションは実行時にモジュールをロードしますが、コンパイル時にはモジュールをチェックしないからです。同様に、アプリケーションを変更しても、モジュールを再コンパイルする必要はありません。アプリケーションでコンパイル時にモジュールがチェックされないのと同様に、モジュールでは実行時までアプリケーションがチェックされません。

モジュールが、そのモジュールをロードするアプリケーションとは独立したプロジェクトにある場合は、モジュールを単独で再コンパイルする必要があります。

ただし、リンカーレポートまたは共通コードに影響する可能性のある変更を加えた場合は、アプリケーションとモジュールの両方を再コンパイルする必要があります。

注意: load-externs オプションまたは optimize オプションを使用してモジュールの依存関係を外部化した場合、そのモジュールが、Adobe Flex の将来のバージョンと互換性を持たなくなる可能性があります。モジュールの再コンパイルが必要となる場合があります。将来の Flex アプリケーションでモジュールを確実に使用できるようにするには、モジュールとモジュールが必要とするすべてのクラスをコンパイルします。このことは、他のアプリケーション内でロードするアプリケーションにも当てはまります。

モジュールのデバッグ

モジュールを使用するアプリケーションをデバッグするには、モジュールをコンパイルするときに、モジュールに対して debug コンパイラオプションを true に設定します。これを行わないと、モジュールに対するブレークポイントの設定や、その他のデバッグ情報のモジュールからの収集を行えません。Flex Builder では、デバッグはデフォルトで有効になっています。コマンドラインでは、デバッグはデフォルトで無効になっています。また、デバッグするモジュールをロードするアプリケーションをコンパイルするとき、debug オプションを true に設定する必要があります。

複数のモジュールを使用するときに発生する一般的な問題は、他のモジュールが使用する必要があるクラス定義をモジュールが所有している場合があることです。クラス定義は子アプリケーションドメインにあるので、最初にクラス定義をロードしたモジュールはそのクラスの定義を使用できますが、他のモジュールがそのクラスを使用しようとするとエラーが発生します。この解決方法は、クラス定義をメインアプリケーションドメインに格上げして、すべてのモジュールでそのクラスを使用できるようにすることです。詳細については、モジュールのドメインを参照してください。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート