Скомпилируйте SWC, используя COMPC, за исключением сторонних библиотек

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

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

Спасибо

2 ответа

Решение

-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 напрямую, как в примере выше

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

Другие вопросы по тегам