PDA

Просмотр полной версии : Встраивание шрифтов загруженных пользователем


AlexLucas
17.01.2013, 14:10
Доброго времени суток.
У меня такая ситуация - нужно предоставить пользователю свободу действий в плане шрифтов, т.к. в приложение я не могу добавить абсолютно все существующие шрифты, я хочу дать пользователю возможность загрузить свой *.ttf и добавить его в рантайме. А вот как это сделать я пока не представляю.
Т.е. для того чтобы добавить , нужно заэмбедить шрифт в какой-нибудь swf и подгружать, а если пользователь скинет нам свой шрифт, мне нужно из главного вызвать компиляцию swf для подгруженного шрифта, и потом подгрузить этот swf? А это как реализовать?
Как-то больше ничего не нашёл и в голову не приходит.

alatar
17.01.2013, 16:16
Например так:
1. Загружаете файл шрифта на сервер.
2. Не закрывая соединение, сервер создает swf с помощью fontswf (или mxml из шаблона) из FlexSDK.
3. Сервер в ответ отсылает созданный swf (или путь к нему, зависит от вашего приложения).
4. Загружаете полученный swf. (по необходимости регистрируете шрифт).
5. PROFIT

AlexLucas
17.01.2013, 17:17
Спасибо!
Во втором пункте (или mxml из шаблона)
Что за шаблон? Поясните пожалуйста.

И чтобы этого добиться, нужно будет держать весь SDK на сервере?

alatar
17.01.2013, 17:36
1. *.as файл с эмбедом.
2. Нет. Только минимум необходимый для компиляции. Там много чего можно выкинуть, например, исходники фреймворка и AIR.

TWETTI
17.01.2013, 18:08
Сгенерировать SWF с заэмбеденым шрифтом можно и на клиентской стороне. Не обязательно использовать сервер.

Посмотрите эту (https://github.com/unstoppable/actionscript3--flash--load-and-register-ttf-font-in-runtime) библиотеку.

AlexLucas
17.01.2013, 18:26
Спасибо, тоже посмотрю.

dimarik
17.01.2013, 22:04
Посмотрите эту (https://github.com/unstoppable/actionscript3--flash--load-and-register-ttf-font-in-runtime) библиотеку.
Спасибо, занес в закладки.

etc
17.01.2013, 23:17
Хорошая либа, она мне напомнила мой FontLoader :)
И судя по тестовому проекту, там даже копипаст стилей из моего теста :))