SWC ファイルは、コンポーネントやその他のアセットのアーカイブファイルで、クラスライブラリと呼ばれることもあります。SWC ファイルには、CSS ファイルなどのプロパティファイルやその他の未コンパイルのアセットの他に、SWF ファイルと catalog.xml ファイルが含まれています。SWF ファイルにはコンパイルされたコンポーネントまたはコンポーネントのグループが実装され、埋め込まれたリソースがシンボルとして格納されます。Flex アプリケーションでは、SWC ファイルから SWF ファイルを抽出し、アプリケーションがこの SWC ファイルに含まれるリソースを参照するときに SWC ファイルの内容を使用します。catalog.xml ファイルには、コンポーネントパッケージの内容および各コンポーネントがリストされます。
ほとんどの場合、アプリケーションによって参照される SWF ファイルで定義されるシンボルは、コンパイル時に Flex アプリケーションに埋め込まれます。これは静的なリンクと呼ばれます。アプリケーションコンパイラは、アプリケーションで使用されるコンポーネント、および依存クラスだけを最終的な SWF ファイルに含めます。
SWC ファイルの内容を動的にリンク付けすることもできます。動的なリンクは、SWF ファイル全体が実行時にロードされたときに作成されます。SWF ファイルの動的なリンクを作成するには、SWC ファイルをランタイム共有ライブラリ(RSL)として使用する必要があります。詳細については、ランタイム共有ライブラリの使用を参照してください。
SWC ファイルを使用すると、Flex 開発者が効率よくコンポーネントや他のアセットをやり取りできるようになります。MXML ファイルや ActionScript ファイルと、イメージ、その他のリソースファイルを送信する必要はなく、1 つのファイルを交換するだけで済みます。SWC ファイル内の SWF ファイルはコンパイルされているので、コードを効率的にロードし、不用意な表示を避けることができます。また、コンポーネントを SWC ファイルとしてコンパイルすると、名前空間の割り当てが容易になります。
SWC ファイルのパッケージ化と展開は、WinZip や jar などの PKZip アーカイブ形式をサポートするツールで実施できます。ただし、SWC ファイルの内容を直接変更しないでください。また、SWC ファイルに格納された SWF ファイルを Flash Player で実行しないでください。
通常は、コマンドラインコンポーネントコンパイラの compc を使用して SWC ファイルを作成します。また、SWC ファイルはアーカイブされたファイルではなくオープンディレクトリとして保存することもできます。これにより、SWC ファイルの内容へのアクセスが簡単になります。directory オプションを true に設定し、オープンディレクトリ SWC を作成することもできます。RSL ではアプリケーションと共に SWF ファイルを展開する必要があるため、通常はこのオプションは RSL を作成するときにのみ使用されます。
SWC ファイル内のプロパティファイルは、UTF-8 形式のコンパイルされていないテキストファイルです。このプロパティファイルは、Flex アプリケーションをローカライズするためのリソースバンドルとして使用されます。SWC ファイル内では、プロパティファイルは /locale/locale_string ディレクトリに格納されます。locale_string には、en_US や fr_FR などが入ります。詳細については、『Adobe Flex 3 開発ガイド』のFlex アプリケーションのローカライズを参照してください。
生成した SWC ファイルは、Flex アプリケーションで使用できます。
また、SWC ファイルは library-path コンパイラオプションで指定したディレクトリにコピーすることもできます。SWC ファイルは user_classes ディレクトリの最上位または library-path で指定したディレクトリに格納します。SWC ファイルをサブディレクトリに格納することはできません。
コマンドラインまたは Flex Builder でコンポーネントまたはアプリケーションをコンパイルするときに SWC ファイルを使用する場合は、library-path コンパイラオプションで SWC ファイルの場所を指定します。
SWC ファイルに名前空間のないコンポーネントがある場合は、<mx:Application> タグに汎用的な名前空間識別子を追加すれば、このコンポーネントを使用できます。次に例を示します。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:a="*">
コンポーネントの名前空間にパッケージ名が含まれている場合は、次のいずれかを実施する必要があります。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:but="mycomponents.*">
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート