Встраивание шрифтов для AS3. Как? - PullRequest
2 голосов
/ 14 сентября 2011

Я встроил шрифт с помощью Flash Professional CS5, но все еще не могу использовать его в своем коде AS.Как мне встроить шрифт, чтобы можно было использовать его и в AS3 во Flash Professional CS5?

Ответы [ 2 ]

7 голосов
/ 14 сентября 2011

Я делаю что-то немного другое.: D embedAsCFF должно быть false, если вы хотите использовать старые TextFields или true, если вы используете новый текстовый движок.

public class Font_Arial
{

    [Embed(source   = 'Arial.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'normal'  // normal|italic
    ,fontWeight     = 'normal'  // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _regular:Class;

    [Embed(source   = 'Arial_i.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'italic'  // normal|italic
    ,fontWeight     = 'normal'  // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _italic:Class;

    [Embed(source   = 'Arial_b.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'normal'  // normal|italic
    ,fontWeight     = 'bold'    // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _bold:Class;

    [Embed(source   = 'Arial_bi.ttf'
    ,fontFamily     ='_Arial_'
    ,fontStyle      = 'italic'  // normal|italic
    ,fontWeight     = 'bold'    // normal|bold
    ,mimeType       = "application/x-font-truetype"
    ,unicodeRange   = 'U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E'
    ,embedAsCFF     = 'false'
    )]
    private const _boldItalic:Class;

    public static const name:String = "_Arial_";

    public function Font_Arial()
    {
        Font.registerFont(_regular);
        Font.registerFont(_italic);
        Font.registerFont(_bold);
        Font.registerFont(_boldItalic);
    }
}

Тогда вы можете использовать что-то вроде

var _format:TextFormat = new TextFormat(Font_Arial.name, 16,....)

Вам понадобитсячтобы убедиться, что статическая константа name идентична fontFamily внутри шрифта.Всем им присваивается одно и то же имя, поэтому все они действуют как 1 шрифт; текстовое поле выберет правильный стиль для использования, если текстовое поле установлено жирным шрифтом или курсивом или жирным шрифтом и курсивом или просто старым обычным шрифтом.

Iтогда бы сделал другой класс для разных "наборов" шрифтов

1 голос
/ 14 сентября 2011
  1. Вставьте шрифт в ваш файл fonts.fla. http://www.adobe.com/devnet/flash/quickstart/embedding_fonts.html

  2. Экспорт файла fonts.fla в библиотеку SWC. (в настройках экспорта установите флажок SWC во Flash CS5)

  3. Используйте SWC с кодом!

Тогда вы сможете увидеть это:

enter image description here

...