Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   [Flex4] Подгрузить шрифт динамически (http://www.flasher.ru/forum/showthread.php?t=137174)

s8000_1 06.03.2010 03:44

[Flex4] Подгрузить шрифт динамически
 
Как?
Мне нужно менять шрифт у label'а, но шрифты в отдельных swfках. Подключить все через @Embed не могу, т. к. вес файла становится неприемлемым.
Пробовал FontLoader (от etc), но он не дружит с FTE.

2wvxvw, наверняка вы знаете :)

wvxvw 06.03.2010 03:55

Решение влоб, может не самое удачное, но быстрое - скомпилировать CSS флексовый со стилем и его подргузить. Можно более заморочено, типа создать класс отнаследоваться от Font заэмбедить на нем ваш нужный шрифт, скомпилировать его в SWF, потом эту SWF загрузить и Font.registerFont( loadedSWF.loaderInfo.applicationDomain.getDefinition( "MyFontClass" ) )
:)

etc 06.03.2010 14:45

Цитата:

Сообщение от s8000_1 (Сообщение 891316)
Пробовал FontLoader (от etc), но он не дружит с FTE.

Гм, а чего ему с ним дружить? Или там добавили новую версию тега Font?

UPD: Нет, не добавили. Тогда не понимаю, чего ему не дружить.

wvxvw 06.03.2010 16:42

Это DefineFont4 - он и раньше был, но раньше его только статический текст использовал (на сколько я знаю)

s8000_1 06.03.2010 17:01

wvxvw, второй способ понятен, а первый:

> скомпилировать CSS флексовый со стилем и его подргузить

не совсем понял. Имеете в виду проект флексовый без фреймворка, но с подключенным CSS?

wvxvw 06.03.2010 17:46

А, не если без фреймворка - тогда бессмысленно. MXMLC вообще-то умеет CSS файлы компилировать, но они довольно большие получаются (хотя маленькие по сравнению с обычными фреймворковскими модулями).

s8000_1 06.03.2010 18:15

wvxvw, на знал, что так можно.
Спасибо за помощь.

Удалось мне подгрузить шрифт.
Если кто-нибудь наткнется на тему, то вот конкретная реализация.
1. Создаем файл со шрифтом.
Код AS3:

package {
        import flash.display.Sprite;
        public class Main extends Sprite {
                [Embed(source='../lib/fonts/segoesc.ttf',
                        fontWeight='bold',
                        fontName='SegoeScript_embed',
                        mimeType='application/x-font',
                        embedAsCFF='true',
                        unicodeRange = 'U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+00FC-U+00FD,U+0401-U+0401,U+0410-U+042F,U+0430-U+0451,U+0404-U+0407,U+0454-U+0457,U+0490-U+0491'
                )]
                public var fontClass:Class;
        }
}

2. Во флексе подгружаем его Loader'ом и в обработчике:
Код AS3:

Font.registerFont(this._fontLoader.content.loaderInfo.applicationDomain.getDefinition("Main_fontClass") as Class)
this.testLabel.setStyle("fontLookup", "embeddedCFF");
this.testLabel.setStyle("fontFamily", "SegoeScript_embed");


etc 07.03.2010 22:22

DefineFont4? Надо будет добавить в FL. Найти бы время ещё :(

Волгоградец 09.03.2010 16:52

Хм. А возможно ли заэмбедить фонт embedAsCFF='true' в 3-ем СДК?

Upd.: нельзя...


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

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