Руководство по actionscript. часть 5, стр. 129
Определение доступности шрифта
Чтобы на этапе выполнения определить список доступных шрифтов устройства и встроенных шрифтов, используйте статический метод enumerateFonts ( ) класса Font. Метод enumerateFonts ( ) возвращает массив объектов Font, каждый из которых представляет доступный шрифт устройства или встроенный шрифт. Метод enumerateFonts ( ) определяет единственный параметр типа Boolean enumerateDeviceFonts, который указывает, должен ли возвращаемый массив включать шрифты устройства. По умолчанию параметру enumerateDeviceFonts присвоено значение false, поэтому массив, возвращаемый методом enumerateFonts ( ), не включает шрифты устройства. Каждый объект Font в возвращаемом массиве определяет следующие переменные, описывающие представляемый шрифт.
? fontName — имя шрифта. Для шрифтов устройства переменная fontName содержит имя, которое отображается в списке системных шрифтов. Для шрифтов, встраиваемых через среду разработки Flash, переменная fontName содержит имя, которое отображается в списке Font (Шрифт) окна Font Symbol Properties (Свойства символа шрифта), применяемого для встраивания шрифта. Для шрифтов, встраиваемых с помощью тега метаданных [Embed], переменная fontName содержит строковое значение, которое указывается для параметра fontFamily тега [Embed], применяемого для встраивания шрифта.
? fontStyle — вариация шрифта (обычное начертание, полужирное начертание, курсив или полужирный курсив) в виде одной из четырех следующих констант языка ActionScript: FontStyle. REGULAR, FontStyle. BOLD, FontStyle. ITALIC, FontStyle. BOLD_ITALIC.
? f ontType — тип шрифта: встроенный или шрифт устройства. Эта переменная ссылается на одну из двух следующих констант языка ActionScript: FontType. EMBEDDED или FontType. DEVICE.
В листинге 27.16 представлен код, генерирующий список всех доступных встроенных шрифтов, отсортированных в алфавитном порядке.
Листинг 27.16. Перечисление всех встроенных шрифтов
var fonts:Array = Font. enumerateFonts( ); fonts. sortOn(«fontName». Array. CASE INSENSITIVE); for (var i:int = 0; i < fonts.length; i++) { trace(fonts[i].fontname + ", " + fonts[i].fontstyle);
}
В листинге 27.17 продемонстрирован код, генерирующий список всех доступных шрифтов устройства, которые отсортированы в алфавитном порядке.
Листинг 27.17. Перечисление всех шрифтов устройства
var fonts:Array = Font. enumerateFonts(true); fonts. sortOnC»fontName». Array. CASEINSENSITIVE); for (var i:int = 0; i < fonts.length; i++) { if (fonts[i].fonttype == fonttype.device) { trace(fonts[i].fontname + ". " + fonts[i].fontstyle);
}
}
В листинге 27.18 представлен код, генерирующий список всех доступных встроенных шрифтов и шрифтов устройства, отсортированных в алфавитном порядке.