Symbol | |
Font | |
Sound | |
Bitmap |
При создании проекта, в его директории автоматически создаются три поддиректории: "bin", "lib" и"src". "lib" - это и есть наша библиотека.
Чтобы добавить новые классы в библиотеку, нужно переместить в эту директорию соответсвующие файлы.
В качестве класса Symbol, могут выступать отдельные символы библиотеки внешнего .swf-файла, а также сам файл целиком. Классом Font может быть системный шрифт или отдельно взятый .ttf-файл. Sound-классом может быть только .mp3-файл. Bitmap-классом могут быть .png, .gif и .jpg-файлы.
Теперь обо всем по порядку:
Symbol |
В правой вкладке "Project" на директории "lib" кликаем правой клавишей мыши, и выбираем пункт "Add", затем "Library Asset...". Выбираем нужный .swf-файл.
После того, как файл появился в директории "lib", жмем на иконку "+" рядом с ним. Откроется содержимое .swf-файла. Идем в подпапку "Symbols", выбираем нужный нам символ, жмем правой кнопкой мыши, выбираем единственный пункт "Insert Into Document".
В открытом документе .as-файла. Появиться следующая строка:
[Embed(source = '../lib/library.swf', symbol = 'Circle')]
Сразу поле нее, необходимо объявить свойство, класса "Class", которое будет являться ссылкой на наш символ в библиотеке.
[Embed(source = '../lib/library.swf', symbol = 'Circle')] private var SymbolClass:Class;
Теперь, в коде можно использовать экземпляр этого символа:
addChild(new SymbolClass());
Параметры функции Embed:
- source - Путь к .swf-файлу
- symbol - Имя символа в библиотеке .swf-файла
- mimeType - Тип файла. По умолчанию "application/x-shockwave-flash"
Для того, чтобы использовать экземпляр самого .swf-файла, а не символа из библиотеки, достаточно убрать параметр "symbol" из вызова функции Embed.
[Embed(source = '../lib/library.swf')] private var SymbolClass:Class;
Font |
Класс шрифта можно собрать из системного шрифта и из пользовательского .ttf-файла.
Из системного шрифта.
Для этого директория "lib" нам не понадобиться. В документе .as-файла пишем:
[Embed(systemFont = 'Tahoma', fontName = 'TestFont', mimeType='application/x-font')] private var FontClass:Class;
Параметры функции Embed:
- systemFont - Имя системного шрифта
- fontName - Имя нового класса шрифта
- fontStyle - Стиль шрифта. Возможные значения: "normal", "italic", "oblique"
- fontWeight - Толщина шрифта. Возможные значения: "normal", "bold", "heavy"
- advancedAntiAliasing - Сглаживание шрифта
- mimeType - Тип файла. Нужно обязательно указать "application/x-font"
Также как добавляли символ, добавим в директорию "lib" нужный нам .ttf-файл. Кликаем на нем правой кнопкой и выбираем "Insert Into Document"
[Embed(source='../lib/font.ttf', fontName = 'TestFont', mimeType='application/x-font-truetype')] private var FontClass:Class;
- source - Путь к .ttf-файлу
- fontName - Имя нового класса шрифта
- advancedAntiAliasing - Сглаживание шрифта
- mimeType - Тип файла. Нужно обязательно указать "application/x-font-truetype"
Использование шрифта:
var txt:TextField = new TextField(); txt.embedFonts = true; txt.defaultTextFormat = new TextFormat("TestFont", 12, 0); txt.text = "Text"; addChild(txt);
Sound |
Также добавляем в директории "lib" .mp3-файл, также нажимаем "Insert Into Document"
[Embed(source = '../lib/sound.mp3')] private var SoundClass:Class;
Параметры функции Embed:
- source - Путь к .mp3-файлу
- mimeType - Тип файла. По умолчанию "audio/mpeg"
var sou:Sound = new SoundClass(); sou.play();
Bitmap |
Также добавляем в директории "lib" .png, .gif, или .jpg-файл, также нажимаем "Insert Into Document"
[Embed(source = '../lib/image.png')] private var BitmapClass:Class;
Параметры функции Embed:
- source - Путь к файлу
- mimeType - Тип файла. Возможные значения: "image/gif", "image/jpeg", "image/png"
addChild(new BitmapClass());
Все вызовы функции Embed, должны стоять до вызова конструктора экземпляра, и обязательно с объявлением свойства, типа "Class" после вызова.
Хоть мы и объявляем ссылку на символ библиотеки типом "Class", при иcполнении конструктора экземпляра идет преобразование класса. Symbol преобразуется в flash.display.MovieClip, Font - flash.text.Font, Sound- flash.media.Sound, Bitmap - flash.display.Bitmap
В данной статье рассмотрены не все возможности использования библиотеки, смотрите ниже ссылки по теме:
- http://www.flashdevelop.org/community/viewtopic.php?f=9&t=4549
- http://livedocs.adobe.com/flex/3/html/embed_3.html#181779
- http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html
Смотрите также:
! Во Flex 4 для встраивания системных шрифтов с помощью тега Embed необходимо добавить в него атрибут embedAsCFF='false', иначе при компиляции будет выдаваться ошибка.
ОтветитьУдалитьСпасибо за информацию!!!
ОтветитьУдалить! Во Flex 4 для встраивания системных шрифтов с помощью тега Embed необходимо добавить в него атрибут embedAsCFF='false', иначе при компиляции будет выдаваться ошибка.
ОтветитьУдалитьВо FlashDevelop c flex sdk4, ошибки не будет, но шрифт не будет отображаться! Параметр embedAsCFF='false' обязателен в данной сборке (FlashDevelop c flex sdk4).
Во FlashDevelop c flex sdk4, ошибки не будет, но шрифт не будет отображаться! Параметр embedAsCFF='false' обязателен в данной сборке (FlashDevelop c flex sdk4).
ОтветитьУдалитьНебольшое уточнение:
Для встраивания шрифтов из внешних файлов ttf. Не системных шрифтов.