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?