Нижепредставленный материал является дополнением к статье Алексея «Vooparker» Аникутина: "Компиляция совместимых с Flash CS3 swc-библиотек с помощью Flex 3 SDK", за которую ему огромное спасибо. Автор настоятельно рекомендует ознакомится с данной статьей.
Что такое SWC-библиотека?
SWC-библиотека - это библиотека классов с закрытым исходным кодом, которая хранится в файлах с расширением .swc. Также .swc-файлы используются для хранения отдельных компонентов, которые используются во Flash IDE.
Файлы с расширением .swc являются .zip-файлами, упакованными с помощью формата PKZIP. Внутри архива находится .swf-файл с классами, и catalogue.xml c описанием классов. Также в архив могут быть включены дополнительный файлы: картинки, .css-файлы и другие. Подробнее о формате .swc-файлов смотрите на Adobe.
SWC-библиотеки в основном используются в коммерческих проектах. Пользоваться ими легко (об этом ниже), а вот компилировать свои немного сложнее. В данной статье я рассмотрю компиляцию .swc-библиотек, на основе FlashDevelop.
Как компилировать .swc-библиотеку во FlashDevelop.
Подготовим среду разработки.
1. Компилировать .swc-файлы мы будем с использованием Flex Ant Tasks. Подробнее об этом смотрите в справке.
Для этого нам необходимо установить java-утилиту Apache Ant, которую можно скачать на официальном сайте: http://ant.apache.org/. Утилита распространяется в архиве, поэтому инсталлировать её нужно самостоятельно. Распакуйте корневую папку архива в любой каталог на локальном диске, желательно в "Program Files". Например, у меня - это "C:\Program Files\Apache\ant\1.7.1".
2. Перейдем к настройке FlashDevelop. В верхнем меню выбираем пункт "Tools", далее "Custom Arguments".
В появившемся окне внесем два пользовательских аргумента "FlexSDKDir" и "AntDir", в значениях которых пропишем пути соответственно. У меня получилось следующее:
Эти два аргумента нужны для нового типа проекта, который мы сейчас добавим.
Для этого скачиваем архив шаблонов проекта. Полученный архив нужно распаковать в директорию "Projects", которая находится в папке с установленным FlashDevelop. Например, у меня - это "C:\Program Files\FlashDevelop\Projects". Теперь после рестарта FlashDevelop,
в проектах у вас появится новый тип проекта "AS3 SWC Builder".
Попробуем что-нибудь скомпилировать.
Создаем новый проект типа "AS3 SWC Builder". В окне "Project" увидим следующее содержимое проекта:
Теперь перейдем к настройкам. Откроем файл compc-config.xml, который находится в папке "build", и в нем в теге , пропишем классы которые хотим включить в библиотеку.
Запускаем build.bat (нажатием F5), и в директории "bin" появится .swc-библиотека с классами, которые мы включили в неё.
Единственный вопрос остался у меня, на который я так и не нашел ответ: "Что за посторонний класс появляется при сборке .swc-файла?"
Может быть кто-то из читателей мне подскажет.
Дополнительная информация.
Возможно не всегда удобно использовать директорию "src", для хранения исходных классов. Вы можете изменить директорию с исходными классами в файле build.xml в свойстве output.dir
Также если вы хотите чтобы ваша .swc-библиотека была совместима с Flash CS3, нужно прописать классы еще в одном файле manifest.xml, следующим образом:
Более подробно о дополнительных возможностях вы можете узнать в официальной справке Adobe:
Как использовать .swc-библиотеку в AS3-проекте?
Использовать .swc-библиотеку в AS3-проекте достаточно легко. Необходимо перенести .swc-файл в директорию "lib", нажать на файле правой кнопкой и в "Add To Library" поставить галочку.
Теперь вы можете использовать классы библиотеки, также как и классы, которые находятся в директории "src".
Смотрите также:
Что такое SWC-библиотека?
SWC-библиотека - это библиотека классов с закрытым исходным кодом, которая хранится в файлах с расширением .swc. Также .swc-файлы используются для хранения отдельных компонентов, которые используются во Flash IDE.
Файлы с расширением .swc являются .zip-файлами, упакованными с помощью формата PKZIP. Внутри архива находится .swf-файл с классами, и catalogue.xml c описанием классов. Также в архив могут быть включены дополнительный файлы: картинки, .css-файлы и другие. Подробнее о формате .swc-файлов смотрите на Adobe.
SWC-библиотеки в основном используются в коммерческих проектах. Пользоваться ими легко (об этом ниже), а вот компилировать свои немного сложнее. В данной статье я рассмотрю компиляцию .swc-библиотек, на основе FlashDevelop.
Как компилировать .swc-библиотеку во FlashDevelop.
Подготовим среду разработки.
1. Компилировать .swc-файлы мы будем с использованием Flex Ant Tasks. Подробнее об этом смотрите в справке.
Для этого нам необходимо установить java-утилиту Apache Ant, которую можно скачать на официальном сайте: http://ant.apache.org/. Утилита распространяется в архиве, поэтому инсталлировать её нужно самостоятельно. Распакуйте корневую папку архива в любой каталог на локальном диске, желательно в "Program Files". Например, у меня - это "C:\Program Files\Apache\ant\1.7.1".
2. Перейдем к настройке FlashDevelop. В верхнем меню выбираем пункт "Tools", далее "Custom Arguments".

В появившемся окне внесем два пользовательских аргумента "FlexSDKDir" и "AntDir", в значениях которых пропишем пути соответственно. У меня получилось следующее:


Эти два аргумента нужны для нового типа проекта, который мы сейчас добавим.
Для этого скачиваем архив шаблонов проекта. Полученный архив нужно распаковать в директорию "Projects", которая находится в папке с установленным FlashDevelop. Например, у меня - это "C:\Program Files\FlashDevelop\Projects". Теперь после рестарта FlashDevelop,

в проектах у вас появится новый тип проекта "AS3 SWC Builder".

Попробуем что-нибудь скомпилировать.
Создаем новый проект типа "AS3 SWC Builder". В окне "Project" увидим следующее содержимое проекта:

- bin - директория, в которой будет находится скомпилированный.swc-файл.
- build - здесь, находятся файлы с настройками компиляции.
- src - из этой папки будут браться классы, которые мы будем зашивать в нашу .swc-библиотеку.
- build.bat - файл который запускает сборку (компиляцию) библиотеки.

Теперь перейдем к настройкам. Откроем файл compc-config.xml, который находится в папке "build", и в нем в теге
<include-classes> <class>ru.as3coder.AS3CoderLibclass> <class>ru.as3coder.geom.Lengthclass> <class>ru.as3coder.graph.Edgeclass> <class>ru.as3coder.graph.Graphclass> <class>ru.as3coder.graph.GraphMethodsclass> <class>ru.as3coder.graph.Vertexclass> </include-classes>
Запускаем build.bat (нажатием F5), и в директории "bin" появится .swc-библиотека с классами, которые мы включили в неё.

Единственный вопрос остался у меня, на который я так и не нашел ответ: "Что за посторонний класс появляется при сборке .swc-файла?"

Может быть кто-то из читателей мне подскажет.
Дополнительная информация.
Возможно не всегда удобно использовать директорию "src", для хранения исходных классов. Вы можете изменить директорию с исходными классами в файле build.xml в свойстве output.dir
<property name="source.dir" value="${basedir}/src" />
Также если вы хотите чтобы ваша .swc-библиотека была совместима с Flash CS3, нужно прописать классы еще в одном файле manifest.xml, следующим образом:
<componentPackage> <component id="AS3CoderLib" class="ru.as3coder.AS3CoderLib" /> <component id="Length" class="ru.as3coder.geom.Length" /> <component id="Graph" class="ru.as3coder.graph.Graph" /> <component id="Edge" class="ru.as3coder.graph.Edge" /> <component id="Vertex" class="ru.as3coder.graph.Vertex" /> <component id="GraphMethods" class="ru.as3coder.graph.GraphMethods" /> </componentPackage>
Более подробно о дополнительных возможностях вы можете узнать в официальной справке Adobe:
Как использовать .swc-библиотеку в AS3-проекте?
Использовать .swc-библиотеку в AS3-проекте достаточно легко. Необходимо перенести .swc-файл в директорию "lib", нажать на файле правой кнопкой и в "Add To Library" поставить галочку.

Теперь вы можете использовать классы библиотеки, также как и классы, которые находятся в директории "src".

Смотрите также: