3

作成したコードライブラリがあります。他の2つの(サードパーティの)ライブラリに依存しています。現時点では、ライブラリをswcにコンパイルすると、両方のサードパーティライブラリが含まれています。コードライブラリをサードパーティライブラリに対してコンパイルする方法を探していますが、コンパイルされたswcにそれらを含めません。

これは明らかに、私のライブラリを使用する人は両方のライブラリも必要になることを意味しますが、私はこの方法を好みます。私は、swcに含めるクラスを選択できるFlex/Flashbuilderを使用していません。

ありがとう

4

2 に答える 2

6

-external-library-path+=my.swc が答えですが、-runtime-shared-libraries を使用する必要はありません。この引数を使用すると、コンパイルで使用されるが、swc には配置されないコードを指定できます。明らかに、この除外されたクローンは、swc が使用されている場合でも必要になります。

特に注意すべき点は、他の引数とは異なり、-external-library-path は = ではなく += を使用することです。just = を使用することで、プレーヤーの低レベル クラスや追加されたその他の外部ライブラリへの参照を壊すことができます。

Ant で FlexTasks を使用している場合、ターゲットは次のようになります。

<target name="compileToSWC">
    <compc 
        output="${bin}/${SWCName}">
            <source-path path-element="${src}"/>
            <!-- Source to include in SWC -->
            <include-sources dir="${src}" includes="*"/>
            <!-- Libs to exclude from the swc - Note append="true" which is equivillant to using +=-->
            <external-library-path file="${thirdparty.libs}/SomeLib.swc" append="true"/>
            <external-library-path file="${thirdparty.libs}/SomeOtherLib.swc" append="true"/>
    </compc>
</target>

また、external-library-path をフォルダーに指定することもできます。その場合、すべての swcs が含まれます。Adobe の FlexTasks ガイドラインに従い、flexTasks.jar ファイルを libs フォルダーに配置し、external-library-path を使用してフォルダーとしてターゲットにすると、flexTasks.jar 自体が除外され、ビルドが失敗することに注意してください。これを解決するには、flexTasks.jar を別のフォルダーに配置するか、上記の例のように直接 swcs をターゲットにします。

于 2009-07-19T12:49:08.873 に答える
0

他の誰かが依存関係を持っていることを要求できるとは思いません。サード パーティのライブラリをランタイム共有ライブラリとして使用できます。URL で利用可能なサード パーティのライブラリが必要になり、コンパイル時に以下を使用します-runtime-shared-libraries=http://www.yourhost.com/my.swf -external-library-path+=my.swcRSL の詳細については、Adobe ドキュメントを参照してください。

于 2009-07-17T12:46:58.137 に答える