Символы разделяемой библиотеки во время компиляции во Flash

Наш проект Flash имеет следующую структуру. Два FLA-файла с графическими активами (символами), импортированные в проект с чистым кодом AS3 с использованием SWC.

Есть несколько символов, которые используются как в ui.fla, так и в login.fla, поэтому мы хотели бы поместить их в общую библиотеку, вот так.

Суть в том, что мы не хотим использовать символы shared.fla, например, в коде ui.fla, но в среде разработки, чтобы мы могли перетаскивать символы из shared.fla в символы ui.fla (без копирования). Это возможно?

1 ответ

Решение

Совместное использование активов может быть возможно через Remote Shared Library (RSL).

Но, пожалуйста, будьте осторожны: я не видел такого в производстве, это были только мои эксперименты несколько лет назад.

Вот пример:

  1. Создать документ, который будет содержать общие активы. Пусть у него есть имена shared_lib
  2. Создайте какой-нибудь символ. Подготовьте его для РГБ:
    • В Flash IDE выберите "Библиотека" -> ваш символ (щелкните правой кнопкой мыши)-> "Свойства"...
    • Выбрать Export for ActionScript & Export in frame 1введите название символа
    • Выбрать Export for runtime sharing, Введите имя этого swf: 'shared_lib.swf'
    • OK
    • Publish это в SWF и SWC

Итак, теперь у нас есть библиотека. Давайте создадим некоторый актив, который будет использовать его

  1. Создайте другой документ, назовем его "mainui".
  2. Вернитесь к "shared_lib", выберите в Library экспортированный символ, CTRL + C (или щелкните правой кнопкой мыши, скопируйте)
  3. Вернуться к только что созданному mainui, вставить Library,
  4. Создайте какой-нибудь другой символ, экспортируйте его для ActionScript и поместите в него наш импортированный символ
  5. Скомпилируйте его, экспортируйте в SWC, SWF.

На этом этапе мы имеем shared_lib.swf, shared_lib.swc а также mainui.swc, В выход mainui мы можем работать и с внешним активом. Вы можете создать другие активы таким же образом.

Давайте поговорим о настройках проекта, которые будут использовать наши активы.

Итак, что мы имеем именно на данный момент? Mainui.swc имеет символ, который содержит другой "виртуальный" символ. Если вы просто попытаетесь загрузить mainui.swf в браузере с каким-то профилировщиком вы увидите, что сначала он загружается mainui.swfзатем загружается shared_lib.swf,

Но если вы попытаетесь создать какой-то проект и включить mainui.swcВы получите ошибку с неопределенным символом, потому что все, что имеет mainui - это просто виртуальная ссылка на символ из shared_lib.

Чтобы решить эту проблему, вы должны полностью включить shared_lib.swc в вашем проекте. В этом случае у вас будет:

  • через директиву пути к библиотеке: опционально включен mainui.swc
  • через директиву include-library: полностью включено shared_lib.swc

Теперь это будет работать.

Надеюсь, это будет полезно.

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