Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Внедрёные шрифты (http://www.flasher.ru/forum/showthread.php?t=185056)

botbot 03.10.2012 22:12

Внедрёные шрифты
 
Имеем файл preloader.swc. Там просто картинка загрузчика и бар с процентами загрузки. Проценты показываются внедрёным шрифтом Tahoma, шрифт назван TahomaForLoader. В нём выбраны только цифры и спецсимволы (для знака % ).
Имеем так же файл main.swc в котором есть много всяких окошек интерфейса и в которых так же используется Tahoma, только там он внедрён под названием Tahoma_new2. И в нём выбраны все символы, включая кирилицу.
Всё компилируется в FleshDevelop.
После загрузки флешки в интерфейсе не показываются никакие символы, для которых используется Tahoma_new2. Показываюся только цифры. Я подозреваю, что берётся TahomaForLoader а Tahoma_new2 отброшен. Как исправить?

Wolsh 03.10.2012 22:32

Пробовали внедрять шрифты через тег [Embed]?
IDE-шный компилятор не присваивает шрифту имя, которое Вы вводите при внедрении через форму, для него это имя символа в библиотеке, не более. В рантайме оба ваших шрифта будут иметь имя Tahoma, взятое из самого файла шрифта. Через тег же можно внедрять один и тот же шрифт с уникальными именами (атрибут fontName или fontFamily).

botbot 04.10.2012 13:30

Правильно ли я понял:
1 Сделать отдельный font.swc с обрезаным шрифтом
2 Убрать нафиг из preloader.swc все упоминание о тахоме и убрать сам шрифт (из текст филда и из библиотеки)
3 в Preloader.as ставлю Embed с урезаным шрифтом из font.swc, называю например TahomaForLoader
4 После старта сделать для текстфилда скрина прелоадера
Код AS3:

var tf: TextFormat = new TextFormat('TahomaForLoader');
progress.defaultTextFormat = tf;

Или можно как-то проще?
Пока ушёл проверять этот вариант.

Добавлено через 43 минуты
Оно вообще не компилируется
Код AS3:

[Embed(source = "../lib/FontForLoader.swc", fontWeight="bold", advancedAntiAliasing="true", fontFamily = "Tahoma", mimeType="application/x-font-truetype")]
public static var TahomaForLoader: Class;

Цитата:

Preloader.as(22): col: 3: Error: unable to build font 'Tahoma'
Preloader.as(22): col: 3: Error: Unable to transcode ../lib/FontForLoader.swc.
Добавлено через 1 час 43 минуты
ПОхоже, что победил. Код теперь такой
Код AS3:

                [Embed(source = "C:/Windows/Fonts/tahomabd.ttf", 
                mimeType = "application/x-font-truetype",
                fontName = "TahomaForLoader",
                unicodeRange = "U+0025,U+0030-U+0039",
                fontWeight = "bold",
                advancedAntiAliasing="true",
                embedAsCFF="false")]
        public static var TahomaForLoader: Class;

Используется в прелоадере вот так
Код AS3:

// progress это TextField
                        var tf: TextFormat = loaderSkin.progress.defaultTextFormat ? loaderSkin.progress.defaultTextFormat : new TextFormat();
                        tf.font = 'TahomaForLoader';
                        tf.bold = true;
                        tf.size = 15;
                        loaderSkin.progress.embedFonts = true;
                        loaderSkin.progress.defaultTextFormat = tf;
                        loaderSkin.progress.text = '0%';

Полезные сслыки:
код внедрения шрифтов: http://forum.alternativaplatform.com...list/3995.page
описание атрибута Embed unicodeRange http://www.compuart.ru/article.aspx?id=21970&iid=1004
генератор unicodeRange http://zenoplex.jp/tools/unicoderange_generator.html

Wolsh 05.10.2012 01:01

Да.. перемудрили слегка поначалу)) Мне и в голову не пришло бы, что мои слова можно истолковать таким образом... Конечно же я говорил о шрифтах, не об Embed...swc.


Часовой пояс GMT +4, время: 14:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.