Скомпилируйте SWC, используя COMPC, за исключением сторонних библиотек - PullRequest
3 голосов
/ 17 июля 2009

У меня есть библиотека кода, которую я построил. Он опирается на 2 другие (сторонние) библиотеки. На данный момент, когда я собираю библиотеку в SWC, обе сторонние библиотеки включены. Я ищу способ скомпилировать мою библиотеку кода из сторонних библиотек, но без включения их в скомпилированный SWC.

Это, очевидно, означало бы, что любому, кто использует мою библиотеку, понадобятся обе библиотеки, но я бы предпочел это так. Я не использую Flex / Flashbuilder, который, как я знаю, позволяет вам выбирать классы для включения в SWC.

Спасибо

Ответы [ 2 ]

6 голосов
/ 19 июля 2009

-external-library-path + = my.swc - это ответ, хотя использование -runtime-shared-library не нужно. Использование этого аргумента позволяет вам указать код, который будет использоваться при компиляции, но не помещаться в SWC. Очевидно, что этот исключенный clode все еще будет необходим при использовании SWC.

Особо следует отметить, что в отличие от других аргументов -external-library-path использует + = не =. Используя just =, вы прервете ссылки на низкоуровневые классы игроков и любые другие добавленные внешние библиотеки.

Если вы используете FlexTasks с Ant, ваша цель может выглядеть следующим образом:

<target name="compileToSWC">
    <compc 
        output="${bin}/${SWCName}">
            <source-path path-element="${src}"/>
            <!-- Source to include in SWC -->
            <include-sources dir="${src}" includes="*"/>
            <!-- Libs to exclude from the swc - Note append="true" which is equivillant to using +=-->
            <external-library-path file="${thirdparty.libs}/SomeLib.swc" append="true"/>
            <external-library-path file="${thirdparty.libs}/SomeOtherLib.swc" append="true"/>
    </compc>
</target>

Вы также можете указать external-library-path к папке, в этом случае она будет включать все swcs внутри. Обратите внимание, что если вы следуете рекомендациям Adobe FlexTasks и поместите файл flexTasks.jar в папку libs и выберите его как папку, используя external-library-path, flexTasks.jar сам по себе исключается, что приводит к сбою сборки. Чтобы решить эту проблему, либо поместите файл flexTasks.jar в отдельную папку, либо нацельтесь на свои swcs напрямую, как в примере выше

0 голосов
/ 17 июля 2009

Я не думаю, что вы можете просто требовать, чтобы кто-то еще имел зависимости. Он может использовать сторонние библиотеки в качестве общих библиотек времени выполнения, вам понадобятся сторонние библиотеки, доступные по URL, и используйте следующее при компиляции -runtime-shared-libraries=http://www.yourhost.com/my.swf -external-library-path+=my.swc. См. Adobe документы для получения полной информации о RSL

...