Flex任务// Mxmlc和本机扩展(ANE)

时间:2013-06-14 09:36:44

标签: flash command-line mxmlc air-native-extension

我需要设置一个允许构建空中应用程序的连续环境,因此我必须设置一些ANT脚本来编译我的flash然后打包它。

我遇到了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>

如果有人已经成功使用mxmlc成功包含.ane,我很乐意听到解决方案。

干杯!

1 个答案:

答案 0 :(得分:0)

将路径以及.ane文件名添加到 -external-library-path 对我有用。

编辑:在您的目标中,您可能只需更改此内容即可明确查看.ane文件:

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

这是我使用它的方式($ {compiler.arguments}是可选的 - 你可以使用它将信息传递给编译器,例如为条件编译定义标签,如下所示:CONFIG :: debug_trace,true):

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

这是我为本书Easy Native Extensions编写的连续环境构建脚本的摘录(目标是构建ANE,使用ANE并在设备上安装应用程序的应用程序单击)。