Flex アプリケーションで使用するコンポーネントに、パッケージ構造になっていないものが混在することはよくあります。これらのコンポーネントを、Flex アプリケーション内の汎用的な名前空間("*")で使用したいとします。このような場合は、include-classes オプションを使用して、SWC ファイルにコンポーネントを追加します。
次のコマンドラインの例では、2 つの MXML コンポーネント Rotation.as と RotationInstance.as を 1 つの SWC ファイルにコンパイルします。
compc -source-path .
-output c:/jrun4/servers/flex2/flex/WEB-INF/flex/user_classes/RotationClasses.swc
-include-classes rotationClasses.Rotation rotationClasses.RotationInstance
rotationClasses ディレクトリは、現在のディレクトリのサブディレクトリで、ソースパスに含まれています。SWC ファイルは user_classes ディレクトリに出力されるので、新しいコンポーネントは追加設定を行うことなく、サーバー環境で使用できます。
コンポーネントを SWC ファイルに追加するには、include-classes オプションを使用します。このとき、完全なファイル名ではなく、コンポーネントのクラス名だけを使用します。例えば、MyComponent.as ではなく MyComponent を使用します。パッケージ構造内のコンポーネントの場所を指定するには、ドット表記を使用します。
また、source-path を現在のディレクトリ、またはコンポーネントディレクトリが決定される際に基準となるディレクトリに設定します。
framework.swc ファイルと framework_rb.swc ファイルを library-path オプションに追加することもできます。コンパイラ自体がこれらの SWC ファイルの場所を確認できる場合は、このような追加が不要なこともあります。ただし、frameworks の各ファイルを基準にしたデフォルトの場所からコンパイラユーティリティを移動する場合は、これをライブラリパスに追加する必要があります。
例えば、設定ファイルには、前回のコマンドラインの例が次のように表示されます。
<compiler>
<source-path>
<path-element>.</path-element>
</source-path>
<output>
c:/jrun4/servers/flex2/flex/WEB-INF/flex/user_classes/RotationClasses.swc
</output>
</compiler>
<include-classes>
<class>rotationClasses.Rotation</class>
<class>rotationClasses.RotationInstance</class>
</include-classes>
Flex アプリケーションでパッケージ化されていないコンポーネントを使用するには、コンポーネントのディレクトリ構造が含まれた名前空間を宣言する必要があります。次の例では、前の例でコンパイルされたコンポーネントの名前空間を宣言しています。
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmln:local="rotationclasses.*">
...
<local:Rotation id="Rotate75" angleFrom="0" angleTo="75" duration="100"/>
...
</mx:Application>
コンポーネントのディレクトリ構造が含まれた名前空間ではなく、汎用的な名前空間 "*" を使用するには、次のコマンドラインの例のように、ディレクトリを source-path に含めます。
compc -source-path . c:/flexdeploy/comps/rotationClasses
-output c:/jrun4/servers/flex2/flex/WEB-INF/flex/user_classes/RotationComps.swc
-include-classes Rotation RotationInstance
これで、アプリケーションで名前空間を指定できます。次に例を示します。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmln:local="*">
ディレクトリをソースパスに追加した場合は、include-classes オプションでディレクトリ名を指定する必要はありません。
設定ファイルには、これらのオプションが次の例のように表示されます。
<compiler>
<source-path>
<path-element>.</path-element>
<path-element>c:/flexdeploy/comps/rotationClasses</path-element>
</source-path>
<output>c:/jrun4/servers/flex2/flex/WEB-INF/flex/user_classes/ RotationComps.swc</output>
</compiler>
<include-classes>
<class>Rotation</class>
<class>RotationInstance</class>
<include-classes>
この例では、コンポーネントが名前付きパッケージ内にないことを前提としています。パッケージ化されたコンポーネントのコンパイルの詳細については、パッケージ内のコンポーネントのコンパイルを参照してください。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート