Скомпилируйте 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