2013-06-14 2 views
2

Мне нужно настроить непрерывную среду, позволяющую создавать приложения для работы в воздухе, и поэтому мне нужно настроить некоторый скрипт ANT для компиляции моей вспышки, а затем упаковать ее.Flex Tasks // Mxmlc и родное расширение (ANE)

Я столкнулся с задачей flex mxmlc, которая является базовым инструментом для построения .swf.

Я установил базовый файл сборки, используя этот инструмент, но мой проект использует .ANE, и я не могу заставить их быть включенными в мои компиляторы swf. Я получаю ошибки, поскольку многие классы неизвестны.

Вот мой файл сборки:

<property 
    name="AIR_SDK_HOME" value="${basedir}/Flex 4.6.0" />  

<property 
    name="FLEX_HOME" value="${basedir}/Flex 4.6.0" /> 

<property 
    name="FLEX_TASKS" value="${FLEX_HOME}/ant/flexTasks.tasks" />  

<property 
    name="ADT" value="${SDK}/bin/adt" />   

<property 
    name="MXMLC" value="${SDK}/bin/amxmlc" /> 


<taskdef resource="flexTasks.tasks" classpath="flexTasks.jar"/> 


<target name="compile"> 
    <mxmlc file="${basedir}/src/Main.as" 
     output="${basedir}/bin-debug/HR_2012_IPAD.swf" 
     locale="en_US" 
     static-rsls="true" 
     accessible="true" 
     configname="airmobile" 
     debug="true" 
     failonerror="true" 
     fork="true" 
     maxmemory="512m"> 
     <source-path path-element="${FLEX_HOME}/frameworks"/> 
     <source-path path-element="${basedir}/src"/> 
     <source-path path-element="${basedir}/gestouch"/> 
     <compiler.library-path dir="${basedir}/lib" /> 

     <compiler.external-library-path dir="${basedir}" append="true"> 
      <include name="lib/*" /> 
     </compiler.external-library-path> 

     <library-path dir="${basedir}/lib" includes="*.swc,*.ane" append="true"/> 
     <library-path dir="${SDK}/frameworks/locale/en_US" includes="*.swc" append="true"/> 

    </mxmlc> 
</target> 

Если кто-то уже удалось успешно включить .ane с помощью mxmlc, я хотел бы услышать решение.

Cheers guys!

ответ

0

Добавление пути, а также имя файла .ane к -external-library-path работает для меня.

EDIT: В вашей цели вы можете только изменить это явно посмотреть на .ane файла:

<compiler.external-library-path dir="${basedir}" append="true"> 
    <include name="lib/yourExtension.ane" /> 
</compiler.external-library-path> 

Это, как я использую его ($ {compiler.arguments} не является обязательным - вы можете использовать его, чтобы передать информацию для компилятора, например, определить метки для условной компиляции, как это: CONFIG :: debug_trace, истинный):

<target name="build" depends="set build type, copy extension packages, copy files for building"> 
     <exec executable="${MXMLC}" failonerror="true"> 
      <arg line=" 
       ${compiler.arguments} 
       +configname=airmobile 
       -debug=${build.debug} 
       -output ${app.builddir}/${app.name}.swf 
       ${app.main.file} 
       -source-path+=${app.sourcedir} 
       -external-library-path+=${ext.extensiondir}/${ext.file} 
       -library-path+=${app.libs} 
       -incremental=true 
      "/> 
     </exec> 
    </target> 

Это бывший cerpt из сценариев создания непрерывной среды, которые я написал для нашей книги Easy Native Extensions (целью является создание ANE, приложение, которое использует ANE и устанавливает приложение на устройстве одним щелчком мыши).

+0

Хорошо, я попробую это сразу. Вы считаете, что мне нужно использовать «exec» в этом случае? Или я могу придерживаться задачи ? –

+0

Твой путь в порядке, я думаю, не нужно менять цель целиком. – roll

+0

Хорошо, я думаю, что я собираюсь придерживаться твоей и напрямую называть MXMLC.jar для компиляции. Я получаю несколько вопросов, хотя, я должен организовать это так, как вы. Что означает $ {compiler.arguments}? Это все «-»? Например: --compiler.library-path + = --compiler.debug = true –