Объект
FontDescription
используется вместе с объектом
ElementFormat
для определения начертания шрифта и настройки его характеристик. В число характеристик входит имя шрифта, его толщина, наклон, визуализация и местоположение шрифта (в устройстве или в SWF-файле).
Примечание.
FTE не поддерживает шрифты Type 1 и точечные шрифты, например, Type 3, ATC, sfnt-wrapped CID или Naked CID.
Определение характеристик шрифта (объект FontDescription)
Свойство
fontName
объекта
FontDescription
может содержать одно имя или список имен, разделенных запятыми. Например, в списке Arial, Helvetica, _sans механизм обработки текста сначала ищет Arial, затем Helvetica, а после этого _sans, если не удалось найти первые два шрифта. Набор имен шрифтов включает три имени общих шрифтов устройства: _sans, _serif и _typewriter. Они соотносятся с определенными шрифтами устройства в зависимости от системы воспроизведения. Полезно указывать имена по умолчанию, подобные этим, во всех описаниях шрифтов, использующих шрифты устройства. Если свойство
fontName
не определено, по умолчанию используется _serif.
Свойство
fontPosture
можно установить на значение по умолчанию (
FontPosture.NORMAL
) или на значение «курсивное начертание» (
FontPosture.ITALIC
). Свойство
fontWeight
можно Установить на значение по умолчанию (
FontWeight.NORMAL
) или на значение «полужирное начертание» (
FontWeight.BOLD
).
var fd1:FontDescription = new FontDescription();
fd1.fontName = "Arial, Helvetica, _sans";
fd1.fontPosture = FontPosture.NORMAL;
fd1.fontWeight = FontWeight.BOLD;
Встроенные шрифты и шрифты устройства
Свойство
fontLookup
объекта
FontDescription
указывает, какой шрифт должен искать механизм обработки текста для визуализации текста: шрифт устройства или встроенный шрифт. Если указан шрифт устройства (
FontLookup.DEVICE
), среда выполнения ищет шрифт в системе воспроизведения. Если указан встроенный шрифт (
FontLookup.EMBEDDED_CFF
), среда выполнения ищет встроенный шрифт с указанным именем в SWF-файле. Эта настройка поддерживает только компактные встроенные шрифты CFF (Compact Font Format). Если указанный шрифт не найден, используется шрифт устройства по умолчанию.
Использование шрифтов устройства позволяет уменьшить размер SWF-файла. Встроенные шрифты обеспечивают правильное отображение на разных платформах.
var fd1:FontDescription = new FontDescription();
fd1.fontLookup = FontLookup.EMBEDDED_CFF;
fd1.fontName = "Garamond, _serif";
Режим визуализации и доводка до пикселов
Во Flash Player 10 и Adobe AIR 1.5 добавлена визуализация CFF (компактные встроенные шрифты). При использовании данного типа визуализации экранные шрифты становятся более разборчивыми, а отображение текста, написанного мелким шрифтом, выполняется более качественно. Эта настройка применяется только к встроенным шрифтам. В объекте
FontDescription
это значение (
RenderingMode.CFF
) используется по умолчанию для свойства
renderingMode
. Можно установить свойство на
RenderingMode.NORMAL
для выбора типа визуализации, применяемого во Flash Player 7 и более ранних версиях.
Если выбрана CFF-визуализация, второе свойство,
cffHinting
, управляет привязкой горизонтальных линий шрифта к подпикселной сетке. По умолчанию используется значение
CFFHinting.HORIZONTAL_STEM
, которое включает привязку к пикселам. Если задать этому свойству значение
CFFHinting.NONE
, доводка отключается. Эта настройка подходит для анимации и крупного шрифта.
var fd1:FontDescription = new FontDescription();
fd1.renderingMode = RenderingMode.CFF;
fd1.cffHinting = CFFHinting.HORIZONTAL_STEM;
Блокировка и клонирование объектов FontDescription
Если объект
FontDescription
назначается объекту
ElementFormat
, его свойство
locked
автоматически получает значение
true
. При попытке изменить заблокированный объект
FontDescription
выводится ошибка
IllegalOperationError
. Лучше всего дать полное определение такому объекту, прежде чем назначать его экземпляру
ElementFormat
.
Если требуется изменить существующий экземпляр
FontDescription
, сначала нужно проверить значение свойства
locked
. Если оно имеет значение
true
, используйте метод
clone()
для создания незаблокированной копии объекта. Свойства такого объекта можно изменить, а затем назначить его экземпляру
ElementFormat
. Новые строки, созданные из этого объекта
TextElement
, будут иметь новое форматирование. Предыдущие строки, созданные из этого объекта ранее, останутся без изменений.
package
{
import flash.display.Sprite;
import flash.text.*;
public class FontDescriptionCloneExample extends Sprite
{
private var tb:TextBlock = new TextBlock();
private var te:TextElement;
private var ef1:ElementFormat;
private var ef2:ElementFormat;
private var fd1:FontDescription = new FontDescription();
private var fd2:FontDescription;
public function FontDescriptionCloneExample()
{
fd1.fontName = "Garamond";
ef1 = new ElementFormat(fd);
var str:String = "This is flash text";
te = new TextElement(str, ef);
tb.content = te;
var tx1:TextLine = tb.createTextLine(null,600);
addChild(tx1);
fd2 = (fd1.locked) ? fd1.clone() : fd1;
fd2.fontName = "Arial";
ef2 = (ef1.locked) ? ef1.clone() : ef1;
ef2.fontDescription = fd2;
tb.content.elementFormat = ef2;
var tx2:TextLine = tb.createTextLine(null,600);
addChild(tx2);
}
}
}
|
|
|