application Flex utilisant une @ font-face déclaration pour intégrer la police. (Les polices incorporées sont nécessaires pour pouvoir faire pivoter le texte.)
L'application a été développée à l'origine en tant qu'application en anglais, mais lors de la localisation, il est devenu nécessaire de trouver une police Unicode capable d'afficher les caractères asiatiques. L'implémentation originale de l'application utilise quatre polices pour satisfaire les diverses permutations de l'accent de caractère. Bold, Bold Italic, Italic et Normal sont tous fournis via les polices Arial correspondantes de la famille Arial.
Problème:
Lorsque vous essayez de compiler dans la police comme celui qui pourrait être utilisé pour le gras, italique et gras italique par quelque chose comme (oui ce ne est pas idéal, c'était juste un test pour voir si elle pourrait être fait):
@font-face { src:url("/fonts/ArialUnicode.ttf");
fontFamily: myFamily;
fontWeight: normal;
fontStyle: normal;
advancedAntiAliasing: true; }
@font-face { src:url("/fonts/ArialUnicode.ttf");
fontFamily: myFamily;
fontWeight: bold;
fontStyle: normal;
advancedAntiAliasing: true; }
etc.
le problème est que lors de la compilation de l'application Flex obtient de mauvaise humeur et donne le message d'erreur suivant:
[ERROR] /dirpath/Style.css:[49,-1] exception during transcoding: Font for alias 'myFont' with italic style was not found at: file:/dirpath/fonts/ArialUnicode.ttf
Avec un peu d'investigation, Unicode ne supporte ni l'italique ni le gras. Lorsque le compilateur Flex tente d'incorporer la police, il n'est pas satisfait car il ne trouve pas de police à l'emplacement spécifié.
Maintenant, quand la déclaration font-face est prise à sa forme la plus simple de:
@font-face { src:url("/fonts/ArialUnicode.ttf");
fontFamily: myFamily;
fontWeight: normal;
fontStyle: normal;
advancedAntiAliasing: true; }
tout fin et compile l'application affiche tous les poids normal, style normal des caractères asiatiques bien. Toutefois, lors de l'affichage des éléments à afficher en gras ou en italique dans la feuille de style, une boîte apparaît indiquant qu'il n'existe aucune police incorporée ni aucune police système pouvant rendre ce caractère dans ces styles.
Maintenant, c'est ici que ça devient bizarre.
Si la même police Unicode est installée sur le système, elle commence à afficher les caractères asiatiques en gras et en italique. Cela n'a aucun sens car les caractères gras et italique ne sont pas dans la police, comme démontré lorsque Flex a essayé d'intégrer cette police pour satisfaire les styles css ci-dessus. Pourtant, il est évident que cette police est utilisée pour afficher les caractères gras et italique comme avant ils étaient juste des boîtes avant qu'il a été installé comme une police système. Est-ce une sorte de Flex vaudou? Et si tel est le cas, je peux invoquer par programme le dit vaudou car je ne peux pas compter sur l'utilisateur qui doit sortir et installer la police Unicode sur son système.
Editer: Voici d'autres informations susceptibles de clarifier le problème. Ma question n'est pas vraiment de savoir comment faire plusieurs polices de caractères et de poids pour les caractères romains, c'est "Comment Flex applique-t-il des caractères gras et des italiques à une police système? Encore plus quand il dit que cette police ne supporte pas ces caractères en essayant d'intégrer cette police. "
Les mesures pour la question sont reproductibles tels:
- Intégrer uniquement Arial Unicode MS dans l'application et la déployer.
- Sur une nouvelle machine Windows 2003, ouvrez Firefox et sélectionnez la langue japonaise.
- Accédez à l'URL de l'application et affichez les zones où le gras et l'italique doivent être.
- Maintenant, quittez Firefox. Installez la police MS Arial Unicode dans le système Windows 2003.
- Ouvrez Firefox et répétez. Les zones qui étaient auparavant des boîtes sont maintenant en caractères gras/italiques gras/italiques.
Ce n'est pas tellement la façon de résoudre ce problème. Il y a beaucoup de solutions viables. Cependant, ce que j'aimerais vraiment savoir, c'est comment Flex applique-t-il du gras et de l'italique à une police qui, selon elle, ne prend pas en charge le gras ou l'italique?
Merci, C
Ceci n'a rien à voir avec la programmation embarquée mais ne peut pas être retaginé en raison d'une réputation insuffisante. –
Peut-être que cela devient confus à cause des autres fichiers de police d'air pour les combinaisons italiques, gras et étroites? –
Merci Lasse, je ne l'ai pas décrit dans le post, mais nous sommes en train de charger des modules séparés en fonction de la façon dont le navigateur s'identifie. La seule police incorporée au moment de l'exécution pour l'application est celle avec la police Unicode car nous ne chargeons pas les autres polices si le client répond qu'il s'agit d'un paramètre régional japonais ou chinois. –