Liaison de police
Par Cédric Tabin le dimanche 18.05.2008, 22:00 - Flash, Flex & co - Lien permanent
La liaison de police (Font linkage) est très utile, surtout avec l'architecture du Flash Player 9 qui permet de définir des sous-classes personnalisées ! Toutefois, il y a des fois où on s'arrache les cheveux, notammant quand les classes (censées avoir été générées par Flash) sont introuvables au runtime...
Pour faire simple, il suffit ce créer un nouveau fla, incorporer deux polices (avec les mêmes propriétés, mais différents noms de liaison cf ci-dessous) dans la bibliothèque et poser le simple bout de code suivant sur la timeline :
var c1:Class = getDefinitionByName("ch.capi.TahomaNormal") as Class; var c2:Class = getDefinitionByName("ch.capi.TahomaBold") as Class; Font.registerFont(c1); Font.registerFont(c2);
Ensuite, lancer un test de l'animation et Flash vous montrera l'erreur suivante :
ReferenceError: Error #1065: Variable TahomaNormal is not defined. at global/flash.utils::getDefinitionByName() at font_fla::MainTimeline/font_fla::frame1()
De quoi se poser quelques questions... En fait ce qui s'est passé : j'avais oublié de cocher 'bold' (ou 'gras' pour les allergiques de l'anglais ) dans une de mes polices, ce qui fait que visiblement le compilateur flash n'a pas jugé utile de (re)générer une classe pour la même police. Ni même d'annoncer un message d'erreur quelconque !!!
Dans mon cas, je n'ai pas eu beaucoup de souci pour trouver la solution, puisque mon fla contenait uniquement ce bout de code et les dites polices. Mais en admettant que le projet soit plus complexe, il peut devenir très rapidement difficile d'identifier ce genre de comportement alors que celui-ci, devrait être annoncé au runtime !
Commentaires
hello
Pour ma part j'isole toujours mes fonts dans un ou plusieurs swf externe et je charge ces swfs quand j'en ai besoin au lancement de mon application :
http://www.ekameleon.net/vegas/docs...
Et de façon général du coup, en cas de problème, j'ai juste à copié/collé le code de ma doc pour faire un test rapide sur mes fichiers de font externes C'est tout de même plus simple pour éviter les soucis dans une grosse application de trouver toujours un moyen d'isoler son code et de le tester par petit bout tout au long de la production
EKA+
Salut eka
Oui c'est clair, je fais la même chose ! J'ai généralement un SWF par font, mais c'est tout de même surprenant que tu n'aies aucun avertissement à la compilation pour ce genre de chose...
@++
Hello
je n'ai pas d'erreur car je fais attention en créant mes fonts je pense et que j'en utilise rarement plus d'une ou 2 dans mes applications web car pour moi une bonne charte graphique web prend au maxi 1 ou 2 fonts exotiques et le reste j'utilise une font conventionnelle.
En te donnant ma méthode au dessus, je voulais surtout dire qu'il est possible de faire un test de ses polices avant de les intégrer dans une application et si on tombe sur un bug bah au moins on reste dans un cas isolé et donc qui ne va pas nous prendre la tête dans l'application finale.
EKA+