Специальные символы Flex, не встраивающие

Я использую следующий код для встраивания 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, они должны хорошо работать!

1
задан Hanpan 23 April 2010 в 15:29
поделиться

2 ответа

Если вы не укажете диапазон Unicode, будут ли отображаться символы (я не предлагаю запускать таким образом, просто для тестирования). Если они не отображаются с полным встроенным шрифтом, возможно, ваша версия шрифта не содержит символов. Хотя Arial Unicode должен содержать авторские права, это код U + 00A9, который, я думаю, включен в ваши диапазоны, но вы можете попробовать явно включить это число, то есть добавить: U + 00A9-U + 00A9.

Это приложение AIR может оказаться удобным для определения диапазонов Unicode: http://undefined-type.com/tag/unicode/

2
ответ дан 3 September 2019 в 01:05
поделиться

Я бы предложил использовать внешние библиотеки для шрифтов, особенно. учитывая их вес, если символы 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

0
ответ дан 3 September 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: