Как настроить RSL (Runtime Shared Library) - PullRequest
1 голос
/ 08 февраля 2011

Stack !

У меня возникли небольшие проблемы при настройке нового проекта (электронное обучение), который, я думаю, принесет много пользы от RSL.
Мой случайвыглядит примерно так:

Main.fla - Оболочка
Scenes.fla - я объясню это через минуту
Navigation.fla - Какой-то графический интерфейс
Много файлов Fla * - Уроки

Main будутпервый фильм, который будет создан, тогда все, что нужно отсюда, будет скачать .

Каждый урок будет помещен в fla / swf отдельно от " Architecture * 1030"* "(это Основной, Сцены, Навигация и целый набор классов под названием Engine ) и будут добавлены во время выполнения внутри Сцены.

Engine отвечает за обработку повторяющихся инеобходимые задачи, события, общие методы, связь с сервером, между прочим.

Навигация отвечает за обработку пользователя вположить в качестве навигации (следующий урок / предыдущий урок и т. д.), а затем передать его в движок, который будет управлять сценами (и их детьми).

Что ж, у меня тоже есть некоторые ограничения:
Каждый SWF-файл, который будет передан нашему клиенту, должен иметь размер менее 80 КБ, что означает, что я привязан.
Я не могу скомпилировать все как пакет, готовый к отправке.

Как размерСчитай, мне нужны средства, чтобы максимально облегчить нагрузку.
Итак, я много искал в эти дни и обнаружил RSL.
Я создал несколько тестов, чтобы лучше понять, как их использовать, и, конечно,попал в ловушку.

Мне не удалось правильно настроить Flash, не удалось выполнить «Путь к библиотеке» (в конфигурации AS3), не удалось скомпилировать классывнутри SWC ...

Другое дело, что я не буду делать уроки, только архитектуру.
Эти уроки будут созданы людьми, которые могут не иметь никаких знаний в AS3 (ООП или программалогика) вообще.
а я нетсклонен доставлять весь движок (исходный код) кому-либо извне, кто может связываться с ним, делая целое приложение (приложения, на самом деле, мы создадим сотни электронных обучений).

Я действительно думаюМне нужна помощь в некоторых вещах (время тикает):

Как эффективно использовать RSL
Как связывать классы внутри SWC
Как упаковать все, что необходимо для всей работыв SWC, а затем, поставка только этого SWC

Я знаю, что эта нить немного длинная, и что я спрашиваю много вещей, но я ломаю голову против клавиатуры длянеделю, и не удалось управлять настройкой.

Спасибо за внимание ...
NemoStein

1 Ответ

1 голос
/ 09 февраля 2011

Есть два способа сделать это из файла

, один экспортирует всю библиотеку.Перейдите в настройки публикации, выберите «Только 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 является необходимостью.

Надеюсь, это поможет

...