2010-09-11 7 views
0

J'ai un projet Flex 4 qui existe dans un état hybride de Flex/Flash AS3. J'ai déclaré une feuille de style dans le composant de base d'une fenêtre:Flex/Flash Font Embedding

<fx:Style source="styles/styles.css" /> 

Et tous mes composants Flex peuvent afficher cette police. La feuille de style ressemble à ceci:

@font-face { 
    src: url("../fonts/Whitney-Light-Pro.otf"); 
    fontFamily: WhitneyLight; 
    advancedAntiAliasing: true; 
} 

... 

.subBranding { 
    fontFamily: WhitneyLight; 
    fontSize: 20; 
    color: #000000; 
} 

et Flex est capable d'afficher la police spécifiée avec la styleName donnée subBranding. Le problème survient lorsque j'essaie de référencer ces polices dans un objet TextFormat. Je peux me référer à eux par leur nom de police approprié ("Whitney Light") et il apparaîtra tant que embedFonts n'est pas mis à true sur le TextField qui contient le texte/police. C'est probablement parce que j'ai effectivement la police (s) installée. Quand je les décrirais comme WhitneyLight:

new TextFormat("WhitneyLight", 18, 0x000000); 

Je finis avec des temps ou quelque chose à cet effet avec embedFonts = false et rien avec embedFonts = true parce que « WhitneyLight » n'existe pas selon TextFormat. Je puis énuméré sur les polices jusqu'à l'objet de police est concerné:

var fontArray:Array = Font.enumerateFonts(false); 
trace("Fontarray length: " + fontArray.length); 
for(var j:int = 0; j < fontArray.length; j++) { 
    var thisFont:Font = fontArray[j]; 
    trace("FONT " + j + ":: name: " + thisFont.fontName + " embedded as type:" + thisFont.fontType + "."); 
} 

Et la sortie que je reçois est:

Fontarray length: 1 
FONT 0:: name: WhitneyLight is embedded as type: embeddedCFF. 

Ma compréhension est que ma police est intégrée. Que diable?

Des idées?

Répondre

1

Dans la feuille de style, j'ai besoin d'intégrer un ensemble distinct de la police avec le style "embedAsCFF: false;" ensemble. Lorsqu'elle est tracée, la police apparaît comme incorporée au type "embedded" au lieu de "embeddedCFF" et fonctionne dans l'objet TextFormat. Bien que la réponse exacte ne soit pas là, j'ai trouvé l'indice dans quelques diapositives d'une présentation. Colin Moock a débuté sur l'interactivité de Flash CS3/Flex Builder 3 où il a utilisé la métatag [Embed] pour incorporer avec embedAsCFF défini sur false. J'ai deviné qu'il y avait un style CSS correspondant, et est sorti gagnant. J'ai maintenant WhitneyLight et WhitneyLightFlash, un pour une utilisation avec les étiquettes Spark/Halo et un autre pour les paires d'objets TextFormat/TextField.