2010-09-01 24 views
0

Donc - j'ai ce problème étrange.L'incorporation de polices ne fonctionne pas ou?

J'ai un projet majeur, pas besoin de détails, sauf qu'il est divisé en plusieurs fichiers SWF, et donc - je voudrais utiliser une bibliothèque partagée pour intégrer les polices. Terminé - sl_fonts.swf chargé, les polices - vérifiées et fonctionnant, le reste des fichiers SWF est chargé APRES (vérifié par un préchargeur).

maintenant - encore une fois, j'ai retracé le résultat de la demande de la police, il est tout comme

DEBUG: REQUEST ArialBlack RETURN [class EMArialBlack] (main.swf) 
DEBUG: GOT [class EMArialBlack] (loaded.swf) 

Le fichier SWF chargé demandé pour ArialBlack et il semble qu'il a obtenu une réponse - EMArialBlack, qui est la classe de la police incorporée. Ce qui est bizarre, c'est que lorsque je mets ce retour à un .Font d'un TextFormat, cela ne fonctionne pas vraiment. J'ai même tracé le TextFormat.font après l'avoir défini au retour. Il a effectivement tracé [classe EMArialBlack]. MAIS quand je place ce TextFormat à un TextField cela ne fonctionne pas? Si embedFonts est désactivé, il n'a aucun résultat (il conserve l'ancienne police d'espace réservé _sans). Si c'est le cas, aucun texte n'est affiché.

Des idées pour lesquelles cela se passe?

Répondre

0

.font = valeur de chaîne (nom de la police)

var format1:TextFormat = new TextFormat(); 
format1.font="Arial"; 
format1.size=12; 
var result:TextField = new TextField(); 
result.embedFonts=true; 
result.antiAliasType=AntiAliasType.ADVANCED; 
result.text="This text uses a gridFitType of " + tl; 
result.setTextFormat(fm); 

alt text

+0

Oh, je n'ai pas remarqué que sa chaîne. Merci ... Mais alors il y a un autre problème. Je dois obtenir un identifiant String de ma classe de polices. Malheureusement, l'identificateur de chaîne n'était pas "EMArialBlack" comme je m'y attendais ... J'ai donc bouclé les polices disponibles en utilisant Font.enumerateDeviceFonts (false) qui me dit essentiellement les ID des polices incorporées, car elles n'ont pas besoin d'être enregistrées . J'ai trouvé qu'il est enregistré sous "Arial Black" - et tout changement dans le menu Font Embedding ne pouvait pas le changer. J'ai essayé d'utiliser "EMArialBlack", "ArialBlack", "Arial Black" - mais aucun de ceux qui ont travaillé ... Idées? –

+0

le nom est le nom que vous écrivez dans la bibliothèque dans l'ide flash. clic droit-> propriétés – tomato

+0

Il est défini sur EMArialBlack, le nom ainsi que la classe ActionScript. Mais cela ne fonctionne pas - j'ai essayé "EMArialBlack", "ArialBlack" et "Arial Black" comme le paramètre .font, mais ne fonctionne toujours pas. J'ai essayé WITH et WITHOUT .embedFonts mis à vrai. –