2009-10-05 22 views
0

J'essaie de compiler un fichier SWC à partir d'une liste de classes ActionScript données. J'utilise le compilateur compc. Le problème est qu'il y a tellement de classes groupées dans plusieurs espaces de noms que je trouve très fastidieux de spécifier chaque classe à inclure dans le SWC. Existe-t-il un moyen plus simple de le faire comme simplement spécifier un répertoire racine de ces classes?Comment compiler un fichier SWC avec plusieurs espaces de noms

Au moment où je quelque chose comme ceci:

<?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> 

Mais je veux quelque chose comme ceci:

<?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> 

Est-ce possible?

Répondre

1

Nous voulions quelque chose de similaire, dans "Ant". Je suppose que vous n'utilisez pas Flex Builder. Dans ce cas, je vais certainement recommander d'utiliser des tâches Ant et Flex Ant disponibles auprès d'Adobe. Même lorsque vous utilisez Ant, ce n'est pas facile de faire ce que vous voulez faire, donc j'inclus notre code ci-dessous.

Voici notre code. Je ne me souviens pas où j'ai eu l'idée de, ne peut donc pas remercier la source pour elle :)

 <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

j'aurais essayé cela, mais si mal que j'utilise MSBuild pour cela ... soupir :( – Draco

1

Comme Tanmay dit, vous devez utiliser les tâches ANT pour rendre la vie plus facile, mais il y a une wach encore plus simple INCLURE un répertoire entier dans la tâche compc ant. Si vous avez juste besoin d'inclure tout src.dir vous pouvez le faire comme ceci:

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