Блог от AS3Coder'a о JavaScript, HTML, CSS... и немного о Flash.

четверг, 10 сентября 2009 г.

Где спрятана библиотека (Library) во FlashDevelop и как ей пользоваться?

Давайте вспомним что такое библиотека во Flash IDE. С точки зрения программирования, библиотека - это список предписанных классов, экземпляры которых можно использовать в любом месте приложения. Рассмотрим только те, с которым можно работать посредством ActionScript:


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"
Из .ttf-файла.
Также как добавляли символ, добавим в директорию "lib" нужный нам .ttf-файл. Кликаем на нем правой кнопкой и выбираем "Insert Into Document"

[Embed(source='../lib/font.ttf', fontName = 'TestFont', mimeType='application/x-font-truetype')] private var FontClass:Class;

Параметры функции Embed:
  • 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

В данной статье рассмотрены не все возможности использования библиотеки, смотрите ниже ссылки по теме:



Смотрите также:

4 комментария:

  1. ! Во Flex 4 для встраивания системных шрифтов с помощью тега Embed необходимо добавить в него атрибут embedAsCFF='false', иначе при компиляции будет выдаваться ошибка.

    ОтветитьУдалить
  2. ! Во Flex 4 для встраивания системных шрифтов с помощью тега Embed необходимо добавить в него атрибут embedAsCFF='false', иначе при компиляции будет выдаваться ошибка.

    Во FlashDevelop c flex sdk4, ошибки не будет, но шрифт не будет отображаться! Параметр embedAsCFF='false' обязателен в данной сборке (FlashDevelop c flex sdk4).

    ОтветитьУдалить
  3. Во FlashDevelop c flex sdk4, ошибки не будет, но шрифт не будет отображаться! Параметр embedAsCFF='false' обязателен в данной сборке (FlashDevelop c flex sdk4).

    Небольшое уточнение:
    Для встраивания шрифтов из внешних файлов ttf. Не системных шрифтов.

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например <b>, <i>, <a>

Поиск по блогу

Обо мне



Farid Shamsutdinov (AS3Coder)
Russia, Tatarstan, Kazan
as3coder@gmail.com

Подробнее...

Постоянные читатели

© 2014 Farid Shamsutdinov. При копировании материалов, ссылка на источник обязательна. Технологии Blogger.