Question

J'utilise un swf externe contenant un certain nombre de classes de polices pour charger et enregistrer les polices de mon site flash au moment de l'exécution. (exporté dans l'IDE Flash de la bibliothèque, puis enregistré dans le script frame)

Dans ce cas particulier, le fichier swf contient un certain nombre de poids différents de la même famille. par exemple. police romaine, police italique, police légère, police lourde, etc ...

Les polices semblent bien s'enregistrer, mais lorsque j'essaie d'utiliser les polices, certaines propriétés de fontName de ces polices sont identiques. Trois apparaissent en tant que Roman et deux en tant que lumière et une est lumière sc ... Alors je suis allé chercher quelques erreurs de codage stupides, mais à ma grande consternation je n'en ai trouvé aucune. Les objets de police corrects se chargeaient dans le bon ordre.

Après de nombreux tests, j'ai vérifié mon dossier de polices (vista). Lorsque j'ai ouvert le fichier pour Heavy, le titre du visualiseur de polices indique Roman; les titres dans la visionneuse de polices correspondaient à ce que je devenais en flash. Ce comportement semble être unique pour cette police.

Etant donné que fontName est le seul moyen de savoir comment attribuer une police à un TextField, je suis perplexe quant à l'utilisation de cette belle police lourde pour mes en-têtes dynamiques!

C'est une police de type 1

Quelqu'un peut-il suggérer une cause, une solution ou une solution de contournement?

Était-ce utile?

La solution

Merci, je pense que vous avez raison à ce sujet.

J'ai cependant trouvé un moyen d'incorporer la police et de définir le nom.

Tout d'abord, j'ai utilisé CrossFont pour convertir la police postscript de type 1 en .otf

À l'aide de la fonctionnalité [embed ()] maintenant disponible dans cs4, j'ai pu utiliser l'attribut fontFamily pour définir la propriété fontName de la police incorporée.

Dans le code ci-dessous, vous pouvez voir que je mets le nom sur "BlaaDeeBlaa". et le TextFormat l'acceptera et affichera la police incorporée.

[Embed(source="assets/FontFileName.otf",
                            fontFamily="BlaaDeeBlaa",
                            mimeType="application/x-font")]
var BlaaDeeBlaa:Class;

var CH:Font = new BlaaDeeBlaa();

var testTxt:TextField =  new TextField();
testTxt.defaultTextFormat = new TextFormat("BlaaDeeBlaa",28,0x000000,true);
testTxt.embedFonts = true;
testTxt.text = Font.enumerateFonts(false)[0].fontName;
testTxt.autoSize = "left";
addChild(testTxt);

n.b. Seuls les types OpenType (.OTF) et Truetype (.TTF) peuvent être incorporés à l’aide de cette méthode

Le tutoriel de Lee Brimelows sur gotoandlearn

Autres conseils

Cela ressemble à un problème de police plutôt que de logiciel (Flash).

S'il s'agit d'une police gratuite, il est fort possible que l'auteur de la famille de polices ait utilisé une police comme base et en ait copié des copies pour différents styles de visage. Ils ont peut-être simplement changé le nom du fichier et oublié de changer le nom interne.

Vous pourrez peut-être modifier vous-même les noms, mais je n'en suis pas trop sûr.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top