Vous êtes ici : Accueil - Ressources Flash - Bibliothèques de fontes.
La révolution de Flash CS3 ne tiens pas seulement dans sa nouvelle version, désormais 3, de son langage Actionscript mais aussi sur l'utilisation des fichiers flash qui vont influancer radicalement l'agencement structurel des projets : les paramètres de liaisons disparaissant purement et simplement, la première réflexion qui est important de se faire et que peu de personne n'a encore réellement soulevé, c'est qu'un swf peut être utilisé en tant que bibliothèque partagée à la volée et peut être utilisé immédiatement à n'importe quel moment d'une animation. Il n'est plus besoin de recompiler quoi que ce soit à chaque fois. L'agencement des bibliothèques ne se fait donc plus au runtime et c'est sans doute la meilleure chose de cette version CS3 pour moi.
Ce principe en tête, je me suis tout de suite orienté vers l'utilisation des fontes en espérant pouvoir concrétiser une idée qui me trottait depuis longtemps : parser une feuille de styles, récupérer le nom des fontes utilisées et charger les fichiers swf adéquates pour les mises en forme de texte. Et bien c'est chose possible désormais!
Sous Flash CS3, la gestion des fontes dans la bibliothèque se fait de la même façon que dans les précédentes versions via le menu du panneau bibliothèque. Les paramètres de liaisons changent par contre énormément.

Comme on peut le constater, une fonte exportée devient une classe fille de la classe Font. Le nom propre à la classe (ici FFFHarmony) est choisi par l'utilisateur. J'ai juste gardé le nom de la fonte sans les espaces pour faire simple. Au passage, les identifiants n'existent plus. Il faut désormais se baser sur le nom des classes (mais ça, vous le saviez déjà).
Ce qui est intéressant dans le concept, c'est qu'il n'y a besoin de rien d'autre dans les fichiers flash; seulement les fontes que vous voulez utiliser ou stocker sur un espace spécifique. Au final, on se retrouve avec des fichiers propres et légers.
Néanmoins, jusqu'à présent, le choix de structuration et nommage des fontes se faisait essentiellement en fonction des habitudes d'utilisation des feuilles de styles. Flash CS3 va mettre fin à ces pratique en imposant aux développeurs et intégrateurs Flash de n'user dans la création de css que des noms originaux des fontes définis par leur concepteur.
Une fois toutes les bibliothèques de fontes prètes (pour l'exemple, je n'en ai importée qu'une seule), il faut créer une feuille de style. Pas de difficulté particulière, je passerais donc sur ce point. Voici juste le détail du fichier css pour l'intégrité de l'article :
/* CSS Document */
p {
font-family: FFF Harmony;
font-size:8pt;
color:#990000;
}
En général, je déclare systèmatiquement ces trois paramètres pour chacun des styles que je veux. Occasionnellement, certains styles ne peuvent que contenir un ou deux des paramètres seulement. Et encore occasionnellement, il m'arrive d'utiliser le margin pour aligner des textes à droites d'une image. Mais ce n'est pas le sujet de cette article.
Maintenant que la feuille de styles est créée, repassont dans Flash et créont un nouveau document. La première étape va consister à charger cette feuille et de la parser pour récupérer le nom des fontes.
var fontes = new Array();
// si une nouvelle fonte est trouvée, on l'ajoute à la liste
function addNewFont ( font:String ) {
for each ( var f:String in fontes ) if ( f == font ) return;
trace( "\tadded : "+font ); // temps : affiche la fonte trouvée
fontes.push( font );
}
// recherche des fontes nécessaire via la css chargée
function parseFontsList ( css:StyleSheet) {
for each ( var s:* in css.styleNames )
if ( css.getStyle( s ).fontFamily != undefined )
addNewFont( css.getStyle( s ).fontFamily );
}
Pour cette partie théorique, je me base surtout sur mes premières observations et de ce que j'ai pu en comprendre. Il me reste encore beaucoup de documentation à digérer... comme beaucoup d'autres.
L'utilisation d'une fonte se fait au moyen d'un référencement de celle-ci à Flash. Pour cela, il suffit de l'enregistrer via la méthode registerFont de la classe Font (la classe générée pour la fonte est ciblée directement sans avoir besoin d'appeler son constructeur), comme ceci :
Font.registerFont( FFFHarmony );
Lorsque la fonte provient d'un swf externe, le principe est le même, mais il ne faut pas oublier qu'il est nécessaire alors de cibler le bon domaine d'Application. Sans cela, la classe n'est pas accessible. Je ne vais pas m'étaller sur ce point et vais donc vous renvoyer sur l'article d'Itératif : Bibliothèque partagée sous Flash 9. Je rajouterais simplement par rapport à cette article, que les bibliothèques partagées ne sont pas uniquement réservées aux clips et symboles que l'ont peut stocker dans les bibliothèques. Elles peuvent très bien servir à ne stocker que des classes individuelles. Pour les classes filles Font, c'est exactement la même chose :
var _f = ApplicationDomain.currentDomain.getDefinition ( "FFFHarmony" ) as Class;
Font.registerFont( _f );
Et voilà, les fontes sont disponibles pour le swf principal. Vous pouvez télécharger les sources pour cet article ici.