Есть два способа сделать это из файла
, один экспортирует всю библиотеку.Перейдите в настройки публикации, выберите «Только Flash», а затем выберите «1003» на вкладке «Flash»
http://img593.imageshack.us/img593/8296/swc.png
, другой - щелкнуть правой кнопкой мыши элемент в вашей библиотеке и выбрать «Экспорт SWC».Если у вас возникают проблемы с элементами, имеющими ограничение по размеру, это может быть правильным способом, но в противном случае я бы рекомендовал экспортировать всю библиотеку
. Важно, чтобы вы добавили идентификаторы ссылок в свои активы. Вы можете ввестиэто через столбец идентификатора связи в вашей библиотеке или путем редактирования свойств символа.
Эти идентификаторы должны быть уникальными, так как это имена классов, по которым вы будете их называть.Хорошей идеей является создание общего префикса, поэтому они вряд ли будут мешать другим классам.
http://img827.imageshack.us/img827/7820/linkageid.png
Когда ваши ресурсы скомпилированы, вы можете добавить их впапку библиотеки времени выполнения вашего проекта или вставьте их один за другим через настройки или тег внедрения.Я использую FlashDevelop, который упрощает, не уверен, что вы используете, но я уверен, что опция есть и легко доступна.
Использование библиотек.
Что я делал для загрузки ресурсов (swf во время выполнения) Почему run-tim swfs?Ну, вы действительно не можете держать движок отдельно, если собираете его для контента.Идея состоит в том, что сначала загружается движок, а затем загружается конфигурация, которая сообщает ему, как обрабатывать библиотеки и где искать каждую из них.
my setup / getup упрощенный выглядит примерно так
У меня есть XML-файл конфигурации по умолчанию, в который добавляются библиотеки.Для моих целей я знаю ожидаемые библиотеки, поэтому у меня есть xml-теги с предопределенными идентификаторами, такими как:
на стороне кода. Я бы определил имена / типы библиотек как постоянную статическую и поместил бы все их в другую.константа это массив.Примерно так в моем классе данных const static var TYPE_COMPONENTS: String = "components";const static var TYPE_INTERFACE: String = "interface";const static var TYPES: Array = [TYPE_COMPONENTS, TYPE_INTERFACE];
как только я загружу файл confg xml и могу пройти по дочерним узлам один за другим и посмотреть, совпадают ли они с какими-либо элементами в моем массиве TYPES.Я помещаю все совпадения в групповой загрузчик (http://as3.casalib.org/docs/org_casalib_load_GroupLoad.html) Я также помещаю все ресурсы в массив словаря, чтобы я мог активировать ресурсы по определенным мной статическим переменным (Data.TYPE_INTERFACE)
Затем я жду окончания загрузки.
Когда дело доходит до загрузки ресурсов, я использую getLoader (Data.TYPE_INTERFACE). getDefinition (myClassName
) для создания класса
полезно иметь hasDefinition , чтобы проверить, завершается ли класс, не выдавая ошибку
Вам нужно знать, как называется класс, чтобы вызвать его, я использую другой файл XML, которыйопределяет, какие классы искать и как их обрабатывать.
Я генерирую XML-файлы вручную, и иногда мне нужно напоминать себе, какие есть варианты, но было бы возможно создать приложение AIR, которое могло бы генерировать эти файлы.файлы. Поскольку я использую SWF в качестве движка, работающего на ПК, нет способа найти, какие библиотеки присутствуют в дочерней папке, как вы могли бы с технологиями на стороне сервера или AIR, сo XML является необходимостью.
Надеюсь, это поможет