2010-09-01 3 views
0

Итак - у меня есть эта странная проблема.Вложение шрифтов не работает или?

У меня есть большой проект, без каких-либо подробностей, кроме того, что он разделен на множество SWF, и поэтому - я хотел бы использовать общую библиотеку для встраивания шрифтов. Done - sl_fonts.swf загружен, шрифты - проверены и работают, остальные SWF загружены ПОСЛЕ (проверено предварительным загрузчиком).

Теперь - опять же, я проследил результат запроса к шрифту, все это как

DEBUG: REQUEST ArialBlack RETURN [class EMArialBlack] (main.swf) 
DEBUG: GOT [class EMArialBlack] (loaded.swf) 

загруженном SWF запрошенной для ArialBlack файла и, кажется, что он получил ответ - EMArialBlack, который класс встроенного шрифта.

Странно то, что, когда я верну это значение в TextFormat .font, это не работает. Я даже проследил TextFormat.font после установки его в return. Фактически он прорисовывается [класс EMArialBlack]. НО, когда я устанавливаю этот TextFormat в TextField, он не работает? Если embedFonts выключен, он не имеет результата (он хранит старый шрифт _sans-заполнителя). Если он включен, текст вообще не отображается.

Любые идеи, почему это происходит?

ответ

0

.font = строковое значение (имя шрифта)

var format1:TextFormat = new TextFormat(); 
format1.font="Arial"; 
format1.size=12; 
var result:TextField = new TextField(); 
result.embedFonts=true; 
result.antiAliasType=AntiAliasType.ADVANCED; 
result.text="This text uses a gridFitType of " + tl; 
result.setTextFormat(fm); 

alt text

+0

О, я не заметил, что это его строку. Спасибо ... Но тогда есть еще одна проблема. Мне нужно получить String ID моего класса шрифта. К сожалению, идентификатор строки не был «EMArialBlack», как и следовало ожидать ... Таким образом, я зациклился на доступных шрифтах, используя Font.enumerateDeviceFonts (false), который в основном сообщает мне идентификаторы встроенных шрифтов, потому что их не нужно регистрировать , Я обнаружил, что он зарегистрирован под «Arial Black» - и изменение чего-либо в меню Font Embedding не могло его изменить. Я попытался использовать «EMArialBlack», «ArialBlack», «Arial Black» - но никто из них не работал ... Идеи? –

+0

имя - это имя, которое вы пишете в библиотеке в flash ide. right click-> properties – tomato

+0

Устанавливается в EMArialBlack, имя, а также класс ActionScript. Но это не сработало - я попробовал «EMArialBlack», «ArialBlack» и «Arial Black» в качестве параметра .font, но все равно не работает. Я попробовал WITH и без .embedFonts установить значение true. –