| Flex 2 アプリケーションの構築とデプロイ > Flex アプリケーションの構築 > Flex コンパイラの使用 > SWC ファイルについて | |||
"SWC" ファイルは、Flex コンポーネントとその他のアセットのアーカイブファイルです。SWC ファイルには、SWF ファイルと "catalog.xml" ファイルが格納されています。SWF ファイルにはコンパイルされたコンポーネントまたはコンポーネントのグループが実装され、埋め込まれたリソースがシンボルとして格納されています。Flex アプリケーションでは、SWC ファイルから SWF ファイルを抽出し、アプリケーションがこの SWC ファイルに含まれるリソースを参照するときに SWC ファイルの内容を使用します。"catalog.xml" ファイルには、コンポーネントパッケージの内容および各コンポーネントがリストされます。
ほとんどの場合、アプリケーションによって参照される SWF ファイルで定義されるシンボルは、コンパイル時に Flex アプリケーションに埋め込まれます。これは静的なリンクと呼ばれます。動的なリンクは、SWF ファイルが実行時にロードされたときに作成されます。SWF ファイルの動的なリンクを作成するには、SWC ファイルをランタイム共有ライブラリ (RSL) として使用する必要があります。詳細については、ランタイム共有ライブラリの使用を参照してください。
SWC ファイルを使用すると、Flex 開発者が効率よくコンポーネントや他のアセットをやり取りできるようになります。MXML ファイルや ActionScript ファイルと、イメージ、その他のリソースファイルを送信する必要はなく、1 つのファイルを交換するだけで済みます。SWC ファイル内の SWF ファイルはコンパイルされているので、コードを効率的にロードし、不用意な表示を避けることができます。また、コンポーネントを SWC ファイルとしてコンパイルすると、名前空間の割り当てが容易になります。
SWC ファイルのパッケージ化と展開は、WinZip や jar などの PKZip アーカイブ形式をサポートするツールで実施できます。ただし、SWC ファイルの内容を直接変更しないでください。また、SWC ファイルに格納された SWF ファイルを Flash Player で実行しないでください。
Flex データサービスサーバー上で実行されるアプリケーションでは、SWC ファイルの内容が "user_classes" ディレクトリにキャッシュされます。"user_classes" ディレクトリの SWC ファイルを変更しても、Flex Web 層コンパイラでは、アプリケーションを自動的に再コンパイルしません。Flex で新しい SWC ファイルをロードするには、アプリケーションサーバーを再起動する必要があります。
また、SWC ファイルはアーカイブされたファイルではなくオープンディレクトリとして保存することもできます。これにより、SWC ファイルの内容へのアクセスが簡単になります。オープンディレクトリの SWC を作成するには、compc コンパイラの directory オプションを使用します。通常は、これは RSL を作成した場合にのみ使用されます。
コンポーネントコンパイラで SWC ファイルを作成する場合は、任意の数のコンポーネントを含めることができます。MXML アプリケーションで SWC ファイルのコンポーネントを使用すると、アプリケーションコンパイラは、アプリケーションで使用されるコンポーネント、および依存クラスだけを最終的な SWF ファイルに含めます。
Flex には "framework.swc"、"framework_rb.swc"、"playerglobal.swc"、"charts.swc"、"fds.swc"、"rpc.swc" などの SWC ファイルがあります。Flex 2 SDK では、"Flex インストールディレクトリ/frameworks/libs" ディレクトリに SWC ファイルがあります。Flex Builder では、"Flex Builder インストールディレクトリ/Flex SDK 2/frameworks/libs" ディレクトリに SWC ファイルがあります。Flex データサービスでは、"Flex Web アプリケーションのルート/WEB-INF/flex/libs" ディレクトリに SWC ファイルがあります。
次の表で、含まれる SWC ファイルについて説明します。
|
SWC ファイル |
内容 |
|
charts.swc |
すべてのグラフコンポーネントが含まれます。これは Flex のインストールに追加できる別製品です。詳細については、『Flex 2 開発ガイド』のチャートコンポーネントを参照してください。 |
|
charts_rb.swc |
Flex チャートコンポーネントのリソースバンドルが含まれます。リソースバンドルの詳細については、『Flex 2 開発ガイド』のFlex アプリケーションのローカライズを参照してください。 |
|
fds_rb.swc |
Flex データサービスクラスのリソースバンドルが含まれます。 |
|
fds.swc |
Flex データサービスで使用するクラスライブラリが含まれます。このファイルを利用できるのは Flex データサービス開発者だけです。詳細については、『Flex 2 開発ガイド』のFlex メッセージングについてを参照してください。 |
|
flex.swc |
Flex フレームワークが含まれます。ActionScript 専用アプリケーションの構築に使用します。 |
|
framework_rb.swc |
フレームワークのリソースバンドルが含まれます。 |
|
framework.swc |
Flex フレームワークのすべてのビルトインコンポーネントが含まれます。 |
|
playerglobal.swc |
flash.utils や flash.net などの Flash クラスライブラリ、および String や Object などの Flash プリミティブが含まれます。 |
|
rpc.swc |
SOAP 準拠の Web サービス、Adobe リモートオブジェクトサービス、REST スタイルサービスなどの RPC サービスを使用するためのクラスライブラリが含まれます。詳細については、『Flex 2 開発ガイド』のRPC コンポーネントについてを参照してください。 |
生成した SWC ファイルは、Flex アプリケーションで使用できます。アプリケーションサーバー上で、Flex データサービスで Flex アプリケーションを実行している場合は、SWC ファイルを "Flex Web アプリケーションのルート/WEB-INF/flex/user_classes" ディレクトリにコピーします。
また、SWC ファイルは library-path コンパイラオプションで指定したディレクトリにコピーすることもできます。SWC ファイルは user_classes ディレクトリの最上位または library-path で指定したディレクトリに格納します。SWC ファイルをサブディレクトリに格納することはできません。
コマンドラインまたは Flex Builder でコンポーネントまたはアプリケーションをコンパイルするときに SWC ファイルを使用する場合は、library-path コンパイラオプションで SWC ファイルの場所を指定します。
|
メモ |
|
"<Flex ルート>/WEB-INF/flex/libs" ディレクトリにはカスタムコンポーネントまたはクラスを格納しないでください。このディレクトリは、Adobe クラスとコンポーネント用です。 |
SWC ファイルに名前空間のないコンポーネントがある場合は、<mx:Application> タグに汎用的な名前空間識別子を追加すれば、このコンポーネントを使用できます。次に例を示します。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:a="*">
コンポーネントの名前空間にパッケージ名が含まれている場合は、次のいずれかを実施する必要があります。
<mx:Application> タグの名前空間宣言にパッケージ名を追加します。次に例を示します。<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:but="mycomponents.*">
namespace オプションでマニフェストファイルを compc コンパイラに渡します。<mx:Application> タグには、compc で使用した一意の名前空間 URI だけを指定します。コンポーネントの名前空間の指定に関する詳細については、名前空間を使用したコンポーネントのコンパイルを参照してください。Flex 2.01