|Class||public class FontAsset|
|Language Version :||ActionScript 3.0|
|Product Version :||Flex 3|
|Runtime Versions :||Flash Player 9, AIR 1.1|
The font that you embed can be TrueType (TTF) or OpenType (OTF). You can also embed a system font or a font that is in a SWF file produced by Flash. In each of these cases, the MXML compiler autogenerates a class that extends FontAsset to represent the embedded font.
You do not generally use the FontAsset class directly
when you write a Flex application.
For example, you can embed a font by using the
font-face CSS selector
without having to understand that the MXML compiler has created
a subclass of FontAsset for you.
However, it might be useful to understand what is happening
at the ActionScript level.
To embed a font in ActionScript, you declare a variable
of type Class, and put
[Embed] metadata on it.
For example, you embed a TTF file like this:
[Embed(source="Fancy.ttf", fontName="Fancy")] var fancyClass:Class;
The MXML compiler transcodes the TTF data
into the font format that the player uses, autogenerates
a subclass of the FontAsset class, and sets your variable
to be a reference to this autogenerated class.
You can then use this class reference to create instances of the
FontAsset by using the
new operator, and you can use
APIs of the Font class on them; for example:
var fancyFont:FontAsset = FontAsset(new fancyClass()); var hasDigits:Boolean = fancyFont.hasGlyphs("0123456789");
However, you rarely need to create FontAsset instances yourself
because you use the
fontName that you specify
[Embed] metadata to refer to the font; for example,
you set the
fontFamily CSS style to the font name
(in this example,
"Fancy"), and not to a FontAsset instance such as
fancyFont or to the
class reference. For example:
<mx:Label text="Thank you for your order." fontFamily="Fancy"/>