2012-06-12 4 views
0

Я тестировал этот фрагмент с тремя различными TTF-шрифтами, и я до сих пор не получаю @font-face, работающий в Flex. Я что-то упустил? Пробовал как абсолютные, так и относительные пути на url(), без изменений. Если я использую стандартный шрифт (Arial, Verdana, Tahoma ...), появляется текст Hello World!, но когда я пытаюсь использовать любой внешний шрифт, ничего не отображается.Flex: Runtime Загрузка шрифта

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%"> 
<mx:Style> 
    @font-face { 
     src: url(josefin-sans.ttf); 
     fontFamily: JosefinSans; 
    } 

    .custom { 
     fontFamily: JosefinSans; 
     fontSize: 36pt; 
    } 
</mx:Style> 
<mx:Text id="text" styleName="custom" text="Hello World!" /> 

Собран с:

mxmlc -static-link-runtime-shared-libraries=true flex.mxml 
+0

Является ли файл шрифта в корне вашей исходной папки? – RIAstar

+0

@RIAstar Файл шрифта находился в той же папке моего .mxml. Я решил проблему, поставив 'embedAsCFF: false;' в '@ font-face' декларации. :) –

ответ

2

Как вы используете компоненты MX, вы должны вставлять шрифты с embedAsCFF: false; флагом.

@font-face 
{ 
    src: url("josefin-sans.ttf"); 
    fontFamily: "JosefinSans"; 
    fontWeight: normal; 
    embedAsCFF: false; 
} 

Если он не работает, запустите приложение в режиме отладки и следите за ошибками. Кроме того, убедитесь, что шрифт, который вы используете, может отображаться жирным шрифтом и курсивом, если это необходимо.

+1

Ermm, пробовал с 'embedAsCFF: true;', и это не сработало. Поэтому я искал этот флаг и получил эту страницу документации под названием «Устранение неполадок шрифтов в приложениях»: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf6320a-7fec.html В конце этого слова попробуйте попробовать с 'embedAsCFF: false;', и voilà, IT WORKED! В любом случае, спасибо! :) –

+1

Ну да, «ложный», очевидно, моя ошибка :) –

Смежные вопросы