Open Source Flash Pizza for everyone ! follow-up – Shared Fonts
On m'a demandé des précisions sur la technique des "polices partagées" utilisée dans OSFlash Pizza. En voici le secret...
Structure de georgia.xml
<movie width="1" height="1" framerate="12">
<frame>
<library>
<font import="src/ttf/georgia.ttf"/>
</library>
<import url="http://www.deja-vue.net/test/shared/swf/fonts/Georgia Gras.swf"></import>
</frame>
</movie>
On compile avec la ligne de commande suivante:
Voilà !
Ensuite, libre à vous de choisir la façon de charger la police.
Dans le cas d' OSFlash Pizza j' ai choisi la voie du MovieClipLoader. Très pratique mais que je déconseille pour la production. Sa gestion des timeout est inéxistante et l' utilisation de la méthode onLoadError conduit à des catastrophes.
Sur mes projets j' utilise la classe LibStack de Pixlib. Si vous ne savez toujours pas ce qu'est Pixlib, rendez-vous ici. Attention, dernière fois que je répète !.
UPDATE:
NOM DE LA FONTE ET RISQUE DE CONFUSION.
Attention à utiliser le "vrai" nom de la fonte au moment du format coté Flash.
La fonte Georgia Gras illustre parfaitement ce cas. En effet, bien qu'il s'agisse d'une variante de Georgia, son nom réel est pourtant "Georgia".
Ou trouver cette référence ? Dans le fichier TTF lui-même, après indication de la signature numérique.
Un bemol
Je n'ai pas encore pu cerner la raison exacte, mais il semblerait qu 'un délai soit parfois nécessaire afin d'assurer la disponibilité de la fonte dans la librairie.
Pour OSFlash pizza, l'instantiation de l'application a été retardée avec un setTimeout:
{
target.__proto__ = this.__proto__;
target.__constructor__ = Main;
this = target;
XrayLoader.loadConnector("main_xray_v1.3.4.swf", _level1);
setTimeout(this, "init", 500);
}
private function init()
{
var pizza = Application( attachMovie(Application.id, "pizzaService", 1) );
}
Je remercie erixtekila qui m' a indiqué comment simplifier (de moitié!) la configuration xml. En fin de compte si vous lisez son article qui traite le même sujet, on s'aperçoit que les techniques sont bel et bien identiques. A une nuance près, celle exposée ci tient en un seul xml.
Liens d' intérêt sur Libstack
http://www.get-url.net/blog/?47--pixlib-libstack-ou-le-multi-chargement
http://www.rosyflower.net/dotclear/index.php?2005/12/22/17-preloader-pixlib-
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Ah excellent – je n’avais pas trouvé l’article d’exixtekila très clair
Pour le “retard”, c’est pas étonnant – les librairies partagées sont un peu capricieuses et il leur faut un peu de temps pour fusionner…
PS: ya pas une coquille au niveau de “deploy/Georgia Gras.swf” ?
Merci pour la coquille Philippe ^^.
Ton commentaire a par ailleurs attiré mon attention sur une source de confusion potentielle concernant le nom de la fonte et son référencement au moment du format.
L’article à été mise à jour en conséquence.
++
@Philippe : Comment ça pas très clair ?!
@Mike :
. hm hm.
Je pense pour rajouter de l’eau au moulin par rapport aux noms des polices.
Je vais tacher d’être clair
Dans swfmill, tu peux utiliser comme attribut de id et name.
Il ont chacun leur utilité spécifique.
- @id est utilisé comme référence d’exportation dans le swf final. Ce paramètre sera ensuite transformé en identifiant numérique unique par swfmill.
Ce paramètre sert notamment aux champs texte :
- @name : définit un nom utilisé pour TextFormat. Cet identifiant est conservé dans le swf produit.
Il est d’ailleurs tout à fait possible d’importer les glyphes de même famille avec des graisses différentes en leur donnant un attribut name équivalent. C’est pratique lors de l’utilisation de setTextFormat avec les polices embarquées.
Lorsqu’aucun @nom est donné à la police, swfmill utilisera le nom de la police native tel que Mike l’expliquait. Néanmoins, je vous conseille d’utiliser cette approche.
Il est possible tout à fait d’utiliser une font en donnant un identifiant et un nom.
PS : Il était prévu avec Daniel Fischer que je documente certains nouveaux aspects du vocabulaires simpple de swfmill, mais le temps me manque. Si certains sont intéressés, c’est simple. Allez faire un bon dans les sources eet admirez le travail de Dan. Plongez dans le répertoire xslt et lisez les commentaires. Tout un chacun comprenant les rudiments de xslt, s’y retrouvera aisement.
Bon et puis, puisque je suis susceptible, j’arrête de vous expliquer tout cela et de blogger, du même coup tiens. VOILA.
Merci pour toutes ces précisions erixtekila !
Néanmoins…
Je comprends l’aspect pratique d’un seul identifiant pour tous les styles, ex:
[xml]
< ?xml version="1.0" encoding="iso-8859-1" ?>
[/xml]
mais quand tu dis:
Je ne suis pas sûr de saisir ( on te charrie pas, c’est promis
).
Tu parles de graisses, moi je comprends: light, medium, bold, extra-bold , black et extra-black.
Si on s’entend bien, peux tu m’expliquer comment tu arrives à gérer des graisses ?
Et puis faut pas arrêter de blogger pour si peu. ALLER…
Je veux dire :
http://fr.wikipedia.org/wiki/Graisse_(typographie)
Donc on s’entend bien sur la même chose. Ouf, sauvé !
Plus généralement, je parlais de famille de fonte.
L’attribut name te permet de les regrouper sémantiquement pour les utiliser en actionscript ensuite.
Comme ça, j’ai compris
.
Mais sans doute n’étais-je pas très frais lors la lecture de ton commentaire car c’est bien l’idée que tu exprimes en parlant d’
Voila ce qui se passe quand on poste à des heures indues ^^.
Tu avais été très clair !
ps: dis, je corrige le lien ou pas ? ça m’a fait rire en cliquant dessus
alors non !
Any chances of an english version of this article?
Hi Marcelo,
I’m about to do a rewrite (to include the great additions I had in the comments).
The new article will come with a v2 DataGrid (CellRenderer) example and will be available in English
Thanks for asking !
Great!
Can´t wait for that!
Hey Mike, could you be so kind to send me a msg when the english version is available!?
Cheers,
Marcelo.
Hi Marcelo,
I thought you would understand that the corresponding english version of this article is already available here since a few weeks.
Best,