Bon, je viens de vérifier:
Construit un premier FLA dans lequel tu importes dans la librairie une Police (ici AdvoCut). Click droit->liaison, tu lui donnes un nom de liaison, ici "myAdvoCut" (je fais exprès de pas mettre le même nom pour bien différencier). Par défaut, Flash proposera comme typage flash.text.Font, c'est ce qu'il faut.
Dans ton FLA, qu'ici on appel FontTest.fla, tu peux vérifier que la font est embendée comme ça:
1 2 3 4 5 6 7 8 9 10
| import flash.text.Font;
var embeddedFonts:Array = Font.enumerateFonts(false);
embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE);
trace("FONT ------------------------------");
for (var i:int=0; i<embeddedFonts.length; i++) {
trace("name:"+embeddedFonts[i].fontName+", style:"+embeddedFonts[i].fontStyle+", type:"+embeddedFonts[i].fontType);
}
trace("FONT ------------------------------"); |
Maintenant, tu fais un second FLA, ici appelé FontLoad avec ce code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import flash.display.Loader;
import flash.net.URLRequest;
import flash.text.Font;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener("init", init);
loader.load(new URLRequest("FontTest.swf"));
function init(evt:*):void {
var embeddedFonts:Array = Font.enumerateFonts(false);
embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE);
trace("FONT LOADED ------------------------------");
for (var i:int=0; i<embeddedFonts.length; i++) {
trace("name:"+embeddedFonts[i].fontName+", style:"+embeddedFonts[i].fontStyle+", type:"+embeddedFonts[i].fontType);
}
trace("FONT LOADED ------------------------------");
} |
Ce FLA charge l'autre et vérifie quelles polices sont mises à sa disposition. Tu remarqueras qu'ici, il ne trace rien. Cela veut donc dire que charger un SWF dans lequel il y a des polices, ne suffit pas pour accéder à ces polices.
En fait, il faut "enregistrer" les polices. Dans FontTest, où la polices est embendée en bibliothèque, il faut en fin de code ajouter la ligne:
Font.registerFont(myAdvoCut);
Refais les compilations, et ça devrait marcher.
Note: il faut se méfier lors des appels de polices, notamment dans des CSS, tu accèdes parfois par le nom d'export, "myAdvoCut" parfois par le nom de la police "Advocut". Je ne me rappelle plus dans quel cas c'est l'un ou l'autre. Mais surtout, il faut retenir que si on accède à la police par son nom, il faut tenir compte des espaces s'il en contient. Par exemple "HelveticaNeueLT Std Blk" sera appelée en CSS avec les espaces dans son nom et non pas "HelveticaNeueLTStdBlk", ce qui peut être contre-intuitif...
Bon test
Partager