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

<?xml version="1.0" encoding="iso-8859-1" ?>
<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:

swfmill simple "src/georgia.xml" "deploy/Georgia Gras.swf"

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:

public function Main(target)
{
    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-

AS2, Application Architecture, MVC, 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.

Comments

12 Responses to “Open Source Flash Pizza for everyone ! follow-up – Shared Fonts”

Leave Comment

(required)

(required)