Copy link to clipboard
Copied
I enumerate all the fonts on the device at the beginning of my program. I see there are some nice fonts on IOS, like Academy Engraved LET, Bodoni 72 Oldstyle.
If i use that font in my textfield control textformat, i only get the _sans default font; for some reason various fonts are not actually reachable in the AIR system. When you enumerate the font family names, all the styles returned are "regular", but when you ask for a font, you won't get the font you want; it is very font dependent. Verdana, for example is reachable. But Avenir Next Condensed, is not reachable.
Looks like AIR has a botched font mapping system, and that only a fraction of the device fonts are reachable. Or maybe there is some undocumented trick. I have searched for hours on the web in vain for a solution to accessing the "demibold" fonts on the device that are just sitting there, and are wonderful. Why didn't adobe just map the fonts 1:1 like they do in OSX, and then be clever about finding the correct true font when you ask for "BOLD". These are all true type fonts at the end of the day, and Adobe knows how to render a truetype font (heck they even licensed the awesome Saffron renderer from Mitsubishi which probably costs them a bundle!), so how can an omission of this magnitude still exist in version 20 of the AIR runtime!!
Adobe is such a master of typography, it is inconceivable to me that i cannot reach all the device fonts sitting there on my customer's iPod's, etc.
Copy link to clipboard
Copied
I have done further testing, and determined that both TextField, and flash.text.engine will not render certain IOS fonts, such as Academy Engraved LET, Avenir, Avenir Next, Bodoni 72, Bodoni 72 oldstyle, Bradley Hand, Chalkboard SE.
but will render Copperplate, Cochin, Chalkduster, Bodoni ornaments, Baskerville, Arial Rounded, American typewriter.
clearly somebody goofed up big time on the Font renderer.
As for Android, i have determined that TextField() only does the 3 generic fonts. period. But flash.text.engine will render Roboto, Roboto Condensed, and the other fonts too.
So the moral of the story is to use flash text engine so at least on Android you have a few fonts.