31. [junior] Embed Part2. Создание пакета ресурсов SWF

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/
Серия статей на тему Embed и ресурсы:
  1. Embed Part1. Внедрение ресурсов с помощью директивы [Embed]
  2. Embed Part2. Создание пакета ресурсов SWF
  3. Embed Part3. Создание библиотеки ресурсов SWC
  4. Embed Part4. Сглаживание и компрессия(качество) ресурса-картинки (скоро)

В предыдущей статье мы познакомились с методами внедрения ресурсов в проекте Flash Builder с помощью директивы Embed. В этой статье мы поговорим как можно создать пакет ресурсов если в ваше проекте используется большое количество картинок и как этот пакет использовать в коде ActionScript. Конечно же ниже указанный способ не имеет ничего общего с директивой Embed, но я решил объединить эти статьи в одну серию, т.к. они решают одну задача – внедрение ресурсов в проект.

Есть масса способов создать пакет с ресурсами, мы будем использовать самый простой, с помощью редактора Adobe Flash Professional. Создайте новый ActionScript3 fla файл. В новом документе Adobe Flash откройте панель Библиотека(Library) выбрав пункт меню Winow->Library или нажав клавишу Ctrl+L.
embed-part2-windowLibrary

Внедрение картинок

Перетащите на библиотеку картинки которые вы хотите запаковать во флешку. Или выберите пункт меню File->Import->Import to Library.
embed-part2-addImage | embed-part2-importToLib

Если вы все сделали правильно, на панели Library должны появится имена всех ваших картинок.

Что бы ваши ресурсы были доступны в коде ActionScript, этим ресурсам необходимо задать идентификаторы. Что бы задать идентификатор кликните правой кнопкой на картинку, в появившемся контекстном меню выберите пункт Properties. Вкладка Option служит для задания сглаживания и компрессии(качества) картинки. Подробно эти вопросы мы обсудим в 4-й статье из серии Embed.

Перейдите во вкладку ActionScript, поставьте галочки Export for ActionScript и Export in frame 1. У вас в поле Class должно появиться значение имени файла, если у вас в этом поле отобразилось значение с разрешением .png, удали эту часть и оставьте имя файла без спец символов вроде точки. В поле Base Class автоматически пишется flash.display.BitmapData, оставляем без изменений. Нажимаем ОК:
embed-part2-setASLinkage

Если у вас поля Class и Base Class не активны, но активно поле Identifier, значит вы создали документ под ActionScript2.0, откройте настройки публикации(File->Publish Settings) и поменяйте ActionScript2.0 на ActionScript3.0. Посмотрите на скрине как это можно сделать.

Идентификаторы доступа надо задать всем ресурсам. Если у вас много ресурсов, то такое занятие не очень веселое. Можно выбрать сразу несколько картинок и проставить им всем идентификаторы одним кликом. Выберите несколько картинок, и через контекстное меню откройте окно Properties. В выпадающих списках Export for ActionScript и Export in frame 1 выберите пункт yes, и нажмите ОК:
embed-part2-asLinkages

Если вы поместите в библиотек ресурс не задав ему идентификатор доступа, и если ресурс не используется ни где на Timeline(на Stage) то этот ресурс не будет внедрен в скомпилированную флешку.

Внедрение анимации

Создайте новый MovieClip с анимацией. И задайте ему идентификатор доступа точно так же как и для картинок.

Внедрение шрифтов

Откройте панель Library. Кликните на кнопку в правом верхнем углу панели Library и выберите в меню пункт new Font как показано на картинке:
embed-part2-addFont

Во кладке Options введите название шрифта, выберите тип шрифта, стиль. В списке Charactar ranges укажите какие символы необходимо внедрить во флешку. Чем больше символов, тем больше будет весить ваш пакет ресурсов!
embed-part2-fontOptions
Затем перейдите во вкладку ActionScript и задайте идентификатор доступа так же как и в случае с картинками. После нажатия на кнопку OK, ваш шрифт должен отобразится на панели Library, как показано на картинке:
embed-part2-MyFont

Использование пакета в коде ActionScript

Получив скомпилированную флешку с ресурсами мы можем воспользоваться этими ресурсами в вашем проекте ActionScript3.0. Для этого флешку необходимо загрузить с помощью класса Loader, а затем получить классы ресурсов с помощью метода applicationDomain.getDefinition передав этому методу идентификатор доступа который мы задали ресурсу во FLA файле:

Если вы загрузите вашу флешку в текущем домене (подробно про ApplicationDomain здесь) то вы сможете получать классы ресурсов с помощью глобального метода getDefinitionByName. Имейте ввиду если нужного класса нет вы получите ошибку в вызове метода getDefinitionByName, потому его желательно обернуть в оператор try-catch (подробно про try-catch читайте здесь) :

Получить шрифт в коде ActionScript после загрузки файла пакета можно так:

Использование ресурсов с помощью SWC

Вы можете создать из вашего пакета ресурсов библиотеку SWC и использовать ресурсы в коде как обычные классы:

Как это сделать читайте в следующей статье Создание библиотеки ресурсов SWC

Скачать исходники урока можно здесь.

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 2358 раз

Возникли вопросы по статье? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты .

Присоединяйтесь к нам в социальных сетях: ВКонтакте , Twitter и Facebook
Понравилась статья? Буду благодарен если вы поделитесь ссылкой с друзьями:


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress: