Я использую следующий код для встраивания Arial в мое приложение:
[Embed(source='../assets/fonts/Arial.ttf',fontFamily='CustomFont',fontWeight='regular',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT:Class;
[Embed(source='../assets/fonts/Arial Bold.ttf',fontFamily='CustomFont',fontWeight='bold',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_BOLD:Class;
[Embed(source='../assets/fonts/Arial Italic.ttf',fontFamily='CustomFont',fontWeight='regular',fontStyle="italic",
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_ITALIC:Class;
[Embed(source='../assets/fonts/Arial Bold Italic.ttf',fontFamily='CustomFont',fontWeight='bold',fontStyle="italic",
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_ITALIC_BOLD:Class;
[Embed(source='../assets/fonts/Arial Unicode.ttf',fontFamily='CustomFont',fontWeight='regular',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF,U+2022,U+2219,U+20AC-U+21AC',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_UNICODE:Class;
Это хорошо работает для внешних символов, но никакие специальные символы (авторское право, товарный знак, европейский знак и т.д.) не работают. Кто-либо может помочь? Я проверил свои диапазоны Unicode, они должны хорошо работать!
Если вы не укажете диапазон Unicode, будут ли отображаться символы (я не предлагаю запускать таким образом, просто для тестирования). Если они не отображаются с полным встроенным шрифтом, возможно, ваша версия шрифта не содержит символов. Хотя Arial Unicode должен содержать авторские права, это код U + 00A9, который, я думаю, включен в ваши диапазоны, но вы можете попробовать явно включить это число, то есть добавить: U + 00A9-U + 00A9.
Это приложение AIR может оказаться удобным для определения диапазонов Unicode: http://undefined-type.com/tag/unicode/
Я бы предложил использовать внешние библиотеки для шрифтов, особенно. учитывая их вес, если символы Unicode встроены. Есть довольно тривиальный скрипт AS3 для встраивания системного шрифта, например Воздействие :
package {
import flash.display.Sprite;
public class Impact extends Sprite {
[Embed(systemFont='Impact', fontName='Impact', mimeType='application/x-font')]
public static var Impact:Class;
}
}
Вы можете получить вышеуказанный * .as с http://tekkie.flashbit.net/flash/as/embed-system-fonts-with-flex-sdk