2010-04-03 6 views
3

Je crée dynamiquement des champs de texte dans as3 et les formate avec la classe TextFormat. J'ai cependant quelques problèmes avec la sélection du "style" exact de la police à appliquer aux champs de texte. Mon code ressemble si loin comme:as3 formatage d'un champ de texte

formatT = new TextFormat(); 
    formatT.bold = false; 
    formatT.color = 0x000000; 
    formatT.font = "TradeGothic";  
    formatT.size = 16; 

    var textItem = new TextField(); 
    textItem.text = "foobar"; 
    textItem.setTextFormat(formatT); 
    addChild(textItem); 

Cela fonctionne (« Trade Gothic » est appliqué au texte ci-joint), mais je ne peux pas comprendre comment appliquer un style spécifique de « gothique du commerce », par exemple "Oblique Léger". Est-il possible que je peux spécifier cela en utilisant la classe TextFormat?

Merci.

Répondre

4

Vous devez trouver le nom de la police que vous voulez:

var fonts = Font.enumerateFonts(true); 
fonts.sortOn("fontName", Array.CASEINSENSITIVE); 
for each(var f:Font in fonts) 
    trace(f.fontName); 

Vous devriez voir plusieurs pour « TradeGothic ». Je devine que celui que vous voulez est « TradeGothic Light Oblique », par exemple:

formatT.font = "TradeGothic Light Oblique"; 

Étant donné que votre police est pas très commun, je suggère l'intégrer - sinon il ne sera pas rendu correctement sur les ordinateurs qui ne sont pas avoir cette police installée (voir here). Une fois que vous intégrez la police, vous devez spécifier:

textItem.embedFonts = true; 

BTW, si vous voulez ne citer que les noms des polices incorporées, spécifiez false pour le paramètre:

var embeddedFontsOnly = Font.enumerateFonts(false); 
Questions connexes