【问题标题】:Flex 4 + Apache Ant, Cannot Load ActionScript LibrariesFlex 4 + Apache Ant,无法加载 ActionScript 库
【发布时间】:2011-06-26 15:41:44
【问题描述】:

我一直在搜索 google、Apache Docs* 和 FlashPunk 论坛来寻找答案:我无法让 Ant/Flex 找到并编译 *.AS 格式的库文件夹。

这是我的 build.xml。

<project>
<!-- Flex SDK Properties -->
<property name="FLEX_HOME" value="/opt/flex"/>
<property name="MXMLC.JAR" value="${FLEX_HOME}/lib/mxmlc.jar"/>
<!-- Project Properties -->
<property name="PROJECT_PATH" 
     value="/media/Lexar_32G/Dev/ActionScript/FlashPunk/FP_Tut_Vid_ep01"/>
<property name="SOURCE_PATH" value="${PROJECT_PATH}"/>
<property name="OUTPUT_PATH" value="${PROJECT_PATH}"/>
<property name="FLASHPUNK_PATH" value="/media/Lexar_32G/Dev/ActionScript/FlashPunk"/>

<!-- Fetch the JAR full of Flex tasks if it is not already in the source directory -->
<copy file="${FLEX_HOME}/ant/lib/flexTasks.jar" todir="${SOURCE_PATH}"/>
<!-- Add flextasks to the project -->
<taskdef resource="flexTasks.tasks" classpath="${SOURCE_PATH}/flexTasks.jar"></taskdef>

<!-- Release build Flash Player 10.1 -->
<target name="build">

    <!-- Build the FlashPunk library -->
<echo message="building swc..." />
<compc output="FlashPunk.swc" keep-generated-actionscript="false" 
    incremental="false" optimize="false" debug="true" use-network="false">
    <include-sources dir="${FLASHPUNK_PATH}/net" 
        includes="**/* flashpunk/utils/* flashpunk/masks/*" 
        excludes="**/*.TTF **/*.png"/>
        <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>      
    </compc>

    <echo message="building swf..." />

<mxmlc
file="${SOURCE_PATH}/epOne.as" 
output="${OUTPUT_PATH}/epOne.swf"
debug="false" 
incremental="false"
strict="true"
accessible="false"
link-report="link_report.xml"
static-link-runtime-shared-libraries="true">

        <optimize>true</optimize>

    </mxmlc>
</target>

导致许多类型为“定义 net.flashpunk.masks:Grid 无法找到”的错误,即使当我打开目录时我可以在那里看到 *.AS 文件。

对不起,如果这是非常基本的。我正在拼凑来自文档和教程的 Ant 知识。

*我决定使用 Ant,因为 Windows 的 FlashDevelop 和 Linux 的 Eclipse 似乎都不适合我。

【问题讨论】:

    标签: flash actionscript-3 apache ant flex4


    【解决方案1】:

    这(基本上)已修复。我没有实现只拥有一份未编译的 FlashPunk 库副本的目标,但我能够通过将整个库复制到我的源路径来至少编译 SWF。还好它没有那么大。

    Apache Ant 命令如下所示:

    <copy todir="${SOURCE_PATH}/net">
        <fileset dir="/media/Lexar_32G/Dev/ActionScript/FlashPunk/net"/>
    </copy>
    

    结果并不需要额外的命令来让 Flex 为我设置命名空间。此外,在编译最终 SWF 之前,我停止尝试将库编译为 SWC。因此,生成的 build.xml 如下所示:

    <!--
    build.xml
    SquareCrow, June 2011
    Apache Ant makefile
    -->
    
    <project>
        <!-- Flex SDK Properties -->
        <property name="FLEX_HOME" value="/opt/flex"/>
        <property name="MXMLC.JAR" value="${FLEX_HOME}/lib/mxmlc.jar"/>
        <!-- Project Properties -->
        <property name="PROJECT_PATH" value="/media/Lexar_32G/Dev/ActionScript/FlashPunk/FP_Tut_Vid_ep01"/>
        <property name="SOURCE_PATH" value="${PROJECT_PATH}"/>
        <property name="OUTPUT_PATH" value="${PROJECT_PATH}"/>
        <property name="FLASHPUNK_PATH" value="/media/Lexar_32G/Dev/ActionScript/FlashPunk"/>
    
        <!-- Fetch the JAR full of Flex tasks if it is not already in the source directory -->
        <copy file="${FLEX_HOME}/ant/lib/flexTasks.jar" todir="${SOURCE_PATH}"/>
        <!-- Add flextasks to the project -->
        <taskdef resource="flexTasks.tasks" classpath="${SOURCE_PATH}/flexTasks.jar"></taskdef>
    
        <!-- Fetch the FlashPunk files and put them in their own folder -->
        <copy todir="${SOURCE_PATH}/net">
                <fileset dir="/media/Lexar_32G/Dev/ActionScript/FlashPunk/net"/>
            </copy>
    
        <!-- Release build Flash Player 10.1 -->
        <target name="build">
    
            <echo message="building swf..." />
    
            <mxmlc
                file="${SOURCE_PATH}/epOne.as" 
                output="${OUTPUT_PATH}/epOne.swf"
                debug="false" 
                incremental="false"
                strict="true"
                accessible="false"
                link-report="link_report.xml"
                static-link-runtime-shared-libraries="true">
    
                <optimize>true</optimize>
    
            </mxmlc>
        </target>
    
    </project>
    

    简单,不是吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-22
      • 2017-03-03
      • 2010-10-19
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2017-10-25
      相关资源
      最近更新 更多