2009-10-05 71 views
0

我想從給定的ActionScript類列表中編譯一個SWC文件。我正在使用compc編譯器。問題是,有太多的類被分組到多個名稱空間中,我發現指定要包含在SWC中的每個單獨的類非常繁瑣。有沒有更簡單的方法來做到這一點,比如簡單地指定這些類的根目錄?如何使用多個名稱空間編譯SWC文件

目前,我有這樣的事情:

<?xml version="1.0"?> 
<flex-config xmlns="http://www.adobe.com/2006/flex-config"> 
    <output>C:\SomeFolder\testSWC.swc</output> 
    <compiler> 
    <source-path>.</source-path> 
    </compiler> 
    <include-classes> 
    <class>SomeNamespaceOne.One</class> 
    <class>SomeNamespaceOne.Two</class> 
    <class>SomeNamespaceOne.Three</class> 
    <class>SomeNamespaceOne.Four</class> 
    ... 
    <class>SomeNamespaceFifty.One</class> 
    </include-classes> 
</flex-config> 

但我想是這樣的:

<?xml version="1.0"?> 
<flex-config xmlns="http://www.adobe.com/2006/flex-config"> 
    <output>C:\SomeFolder\testSWC.swc</output> 
    <compiler> 
    <source-path>. </source-path> 
    </compiler> 
    <include-classes> 
    <class>SomeRootDirectoryOfClassesToCompile</class> 
    </include-classes> 
</flex-config> 

這可能嗎?

回答

1

我們希望在「Ant」中有類似的東西。

我假設你沒有使用Flex Builder。在這種情況下,我肯定會推薦使用Adobe提供的Ant和Flex Ant任務。即使使用Ant,也不容易做你想做的事情,所以我在下面包括我們的代碼。

以下是我們的代碼。我不記得在那裏我得到了這個想法,所以不能感謝它的源代碼:)

 <pathconvert property="XXX.classes" pathsep=" "> 

     <fileset dir="${basedir}/XXX/src"> 
      <include name="**/*.as"/> 
      <include name="**/*.mxml"/> 
     </fileset> 

     <compositemapper> 
      <packagemapper from="${basedir}\XXX\src\*.as" to="*"/> 
      <packagemapper from="${basedir}/XXX/src/*.as" to="*"/> 
      <packagemapper from="${basedir}\XXX\src\*.mxml" to="*"/> 
      <packagemapper from="${basedir}/XXX/src/*.mxml" to="*"/> 
     </compositemapper> 

    </pathconvert> 

    <compc optimize="true" debug="false" 
    include-classes="${XXX.classes}" output="${BUILD_FOLDER}/XXX.swc"> 
      </compc> 
+0

我會試試這個,但太糟糕了,我正在使用MSBuild ... ...嘆:( – Draco 2009-10-05 14:03:18

1

像Tanmay說,你應該使用Ant任務,使生活更容易,但有一個更簡單的WACH包括: compc ant任務中的整個目錄。如果你只需要在src.dir中包含所有東西,你可以這樣做:

<compc output="${target.dir}/foo.swc"> 
    <source-path path-element="${src.dir}"/> 
    <include-sources dir="${src.dir}"> 
      <include name="**/*" /> 
    </include-sources> 
</compc> 
相關問題