2010-04-23 8 views
1

J'utilise le code suivant pour intégrer Arial dans mon application:Flex caractères spéciaux non incorporation

[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; 

Il fonctionne très bien pour les caractères étrangers, mais pas de caractères spéciaux (droit d'auteur, marque, signe euro, etc.) travaillent . Quelqu'un peut-il aider? J'ai vérifié mes gammes d'Unicode, elles devraient fonctionner bien!

Répondre

2

Si vous ne spécifiez pas de plage Unicode, les caractères apparaissent-ils (je ne suggère pas de lancer de cette façon, uniquement pour tester). Si elles n'apparaissent pas avec la police complète incorporée, peut-être que votre version de la police ne contient pas les caractères. Arial Unicode devrait contenir au moins le copyright, son code est U + 00A9, que je pense est inclus dans vos gammes, mais vous pourriez essayer d'inclure explicitement ce nombre, c'est-à-dire en ajoutant: U + 00A9-U + 00A9.

Vous pourriez trouver cette application AIR pratique pour déterminer les plages unicode: http://undefined-type.com/tag/unicode/

0

Je suggère d'utiliser des bibliothèques externes pour les polices esp. compte tenu de leur poids si les caractères Unicode sont intégrés. Il y a un script AS3 plutôt trivial pour incorporer une police système, par ex. impact:

package { 
    import flash.display.Sprite; 
    public class Impact extends Sprite { 
     [Embed(systemFont='Impact', fontName='Impact', mimeType='application/x-font')] 
     public static var Impact:Class; 
    }  
} 

Vous pouvez obtenir les ci-dessus * .as de http://tekkie.flashbit.net/flash/as/embed-system-fonts-with-flex-sdk