Flex 4 + Apache Ant, не удается загрузить библиотеки ActionScript - PullRequest
0 голосов
/ 26 июня 2011

Я искал на форумах 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, потому что ни FlashDevelop для Windows, ни Eclipse для Linux, похоже, не работают для меня.

1 Ответ

0 голосов
/ 03 июля 2011

Это было (в основном) исправлено.Я не достиг своей цели иметь только одну копию не скомпилированной библиотеки FlashPunk, но я смог заставить SWF-файл хотя бы скомпилировать, скопировав всю библиотеку в исходный путь.Хорошо, что в любом случае это было не так уж и много.

Команда Apache Ant выглядит так:

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

Не оказалось необходимости в дополнительных командах, чтобы позволить Flex настроить для меня пространства имен.Кроме того, я перестал пытаться скомпилировать библиотеку как SWC, прежде чем скомпилировать окончательный SWF.Следовательно, полученный 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>

Простой, нет?

...