as3 форматирование текстового поля - PullRequest
3 голосов
/ 04 апреля 2010

Я динамически создаю текстовые поля в as3 и форматирую их с помощью класса TextFormat. У меня есть некоторые проблемы с выбором точного «стиля» шрифта для применения к текстовым полям. Пока мой код выглядит так:

   formatT = new TextFormat( );
   formatT.bold = false; 
   formatT.color = 0x000000; 
   formatT.font = "TradeGothic";    
   formatT.size = 16;

    var textItem = new TextField();
    textItem.text = "foobar";
    textItem.setTextFormat(formatT);
    addChild(textItem);

Это работает («Торговая готика» применяется к приложенному тексту), однако я не могу понять, как применить определенный стиль «Торговой готики», например «Легкая косая». Есть ли способ, которым я могу указать это с помощью класса TextFormat?

Спасибо.

1 Ответ

4 голосов
/ 06 апреля 2010

Вам нужно найти название нужного шрифта:

var fonts = Font.enumerateFonts(true);
fonts.sortOn("fontName", Array.CASEINSENSITIVE);
for each(var f:Font in fonts)
     trace(f.fontName);

Вы должны увидеть несколько списков для "TradeGothic". Я предполагаю, что вы хотите "TradeGothic Light Oblique", например:

formatT.font = "TradeGothic Light Oblique";

Поскольку ваш шрифт не очень распространен, я бы предложил его встроить, иначе он не будет корректно отображаться на компьютерах, на которых этот шрифт не установлен (см. здесь ). После встраивания шрифта вы должны указать:

textItem.embedFonts = true;

Кстати, если вы хотите просто перечислить имена встроенных шрифтов, укажите false для параметра:

var embeddedFontsOnly = Font.enumerateFonts(false);
...