Какой самый эффективный способ встраивания шрифта во флэш - PullRequest
1 голос
/ 16 ноября 2011

Я использую Flash CS5, и у меня проблема с моим экспортированным SWF-файлом: его размер превышает 100 КБ. У меня есть 2 векторных символа и 4 динамических текста со встроенными полями шрифтов Calibri, которые отображают информацию из внешнего XML-файла. Эти текстовые поля являются теми, которые генерируют самый большой размер моего SWF-файла. Мне нужно где-то вырубить, я искал, но я не нашел «руководства по внедрению шрифтов во флэш-файл». Мне трудно поверить, что если вы встраиваете буквенно-цифровые символы одного шрифта, размер вашего файла достигает> 100 КБ.

1 Ответ

2 голосов
/ 16 ноября 2011

Я был на вашем месте несколько раз и в итоге создал систему сборки муравьев для шрифтов swfs и swcs, используя compc и mxmlc.Быстрый тест с использованием Calibri Regular, знаков препинания, буквенных и числовых значений приводит к размеру SWC ~ 22 КБ.Я не уверен, что делает CS5, чтобы уменьшить размер SWF.

Я бы порекомендовал создать шрифт SWC с помощью compc, затем связать библиотеку с вашим проектом и переписать существующие текстовые форматы текстового поля стот, который указывает для связанного файла шрифтов.

Это класс, который я использовал для генерации swc / swf:

package
{

import flash.display.Sprite;

public class Calibri extends Sprite
{
    [Embed(source="../assets/calibri.ttf", fontName="Calibri", mimeType="application/x-font", 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')]
    public static var fontClass:Class;
    public static var fontName:String = "Calibri";
}

}

Использование библиотеки связанных шрифтов:

Font.registerFont(Calibri.fontClass);

Справочник по объектам TextFormat:

textFormat.font = Calibri.fontName;

Удачи!

...