Adobe® Flex® 4 Language Reference
Hide Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
flash.text.engine 
FontDescription 
Packageflash.text.engine
Classpublic final class FontDescription
InheritanceFontDescription Inheritance Object

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

The FontDescription class represents properties necessary to describe a font. The properties of the FontDescription class apply to device and embedded fonts.

A FontDescription object is applied to an ElementFormat, which is in turn applied to a ContentElement in a TextBlock. Once a FontDescription has been applied to an ElementFormat, its locked property is set to true. The properties of a locked FontDescription object cannot be changed. Instead, use the clone() method to create an unlocked copy of the object, which can be modified and assigned to the ElementFormat.

Note: FTE does not support Type 1 fonts or bitmap fonts such as Type 3, ATC, sfnt-wrapped CID, or Naked CID.

View the examples

See also



Public Properties
 PropertyDefined By
  cffHinting : String
The type of CFF hinting used for this text.
FontDescription
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  fontLookup : String
Specifies how the font should be looked up.
FontDescription
  fontName : String
The name of the font to use, or a comma-separated list of font names.
FontDescription
  fontPosture : String
Specifies the font posture.
FontDescription
  fontWeight : String
Specifies the font weight.
FontDescription
  locked : Boolean
Indicates whether or not the FontDescription is locked.
FontDescription
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  renderingMode : String
The rendering mode used for this text.
FontDescription
Public Methods
 MethodDefined By
  
FontDescription(fontName:String = "_serif", fontWeight:String = "normal", fontPosture:String = "normal", fontLookup:String = "device", renderingMode:String = "cff", cffHinting:String = "horizontalStem")
Creates a FontDescription object.
FontDescription
  
Constructs an unlocked, cloned copy of the FontDescription.
FontDescription
 Inherited
Indicates whether an object has a specified property defined.
Object
  
isFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
[static] Returns true if an embedded font is available with the specified fontName, fontWeight, and fontPosture where Font.fontType is flash.text.FontType.EMBEDDED_CFF.
FontDescription
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
Property Detail

cffHinting

property
cffHinting:String

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

The type of CFF hinting used for this text. Use flash.text.engine.CFFHinting constants for this property. This property applies only if the flash.text.engine.RenderingMode property of the text is set to flash.text.engine.RenderingMode.CFF.

The type of CFF hinting used determines whether Flash Player forces strong horizontal stems to fit to a sub pixel grid or not.

Applies only to embedded fonts.

The default value is flash.text.engine.CFFHinting.HORIZONTAL_STEM.

For the flash.text.engine.CFFHinting property, you can use the following string values:

String valueDescription
CFFHinting.NONESpecifies no CFF hinting. Horizontal stems in the glyphs are not forced to the sub pixel grid. This setting is appropriate for animation or for large font sizes.
CFFHinting.HORIZONTAL_STEMSpecifies CFF hinting. Strong horizontal stems are fit to the sub pixel grid on an LCD monitor. To use this setting, the RenderingMode property must be set to RenderingMode.CFF.



Implementation
    public function get cffHinting():String
    public function set cffHinting(value:String):void

Throws
ArgumentError — If set to any value which is not a member of flash.text.engine.CFFHinting.
 
IllegalOperationError — If set after the FontDescription object is locked (locked is true).

See also

fontLookup

property 
fontLookup:String

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Specifies how the font should be looked up.

The default value is flash.text.engine.FontLookup.DEVICE.

To set values for this property, use the following string values:

String valueDescription
FontLookup.DEVICEFlash Player looks up a device font with the specified name on the local system with which to render the text.
FontLookup.EMBEDDED_CFFFlash Player looks up an embedded CFF font with the specified name with which to render the text. Only fonts of type flash.text.Font.fontType.EMBEDDED_CFF are considered. If the specified CFF font is not embedded in the SWF file, Flash Player attempts to use a device fallback font for each glyph. This method is less efficient than selecting a device font in the first place.



Implementation
    public function get fontLookup():String
    public function set fontLookup(value:String):void

Throws
IllegalOperationError — If set after the FontDescription object is locked (locked is true).

fontName

property 
fontName:String

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

The name of the font to use, or a comma-separated list of font names. Flash Player renders the element with the first available font in the list. For example "Arial, Helvetica, _sans" causes the player to search for "Arial", then "Helvetica" if Arial is not found, then _sans if neither is found.

Flash supports three generic device font names: _sans (like Helvetica and Arial), _serif (like Times Roman), and _typewriter (like Courier). These are mapped to specific device fonts depending on the platform.

The default value is "_serif".

Flash Player provides font fallback for glyphs which are not found in the selected font. Whether the font in use is embedded or device, if the glyph is not found in the font, Flash Player attempts to render it using another device font likely to contain the glyph.



Implementation
    public function get fontName():String
    public function set fontName(value:String):void

Throws
IllegalOperationError — If set after the FontDescription object is locked (locked is true).

fontPosture

property 
fontPosture:String

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Specifies the font posture.

The default value is flash.text.engine.FontPosture.NORMAL.

To set values for this property, use the following string values:

String valueDescription
FontPosture.NORMALNormal font posture.
FontPosture.ITALICItalic font posture.



Implementation
    public function get fontPosture():String
    public function set fontPosture(value:String):void

Throws
ArgumentError — If set to any value which is not a member of flash.text.engine.FontPosture.
 
IllegalOperationError — If set after the FontDescription object is locked (locked is true).

fontWeight

property 
fontWeight:String

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Specifies the font weight.

The default value is flash.text.engine.FontWeight.NORMAL.

To set values for this property, use the following string values:

String valueDescription
FontWeight.NORMALNormal font weight.
FontWeight.BOLDBold font weight.



Implementation
    public function get fontWeight():String
    public function set fontWeight(value:String):void

Throws
ArgumentError — If set to any value which is not a member of flash.text.engine.FontWeight.
 
IllegalOperationError — If set after the FontDescription object is locked (locked is true).

locked

property 
locked:Boolean

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5.

Indicates whether or not the FontDescription is locked. If true the FontDescription cannot be modified. Call FontDescription.clone() to get an unlocked copy of the FontDescription object.



Implementation
    public function get locked():Boolean
    public function set locked(value:Boolean):void

Throws
IllegalOperationError — If set after the FontDescription object is locked (locked is true).

renderingMode

property 
renderingMode:String

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

The rendering mode used for this text. Use flash.text.engine.RenderingMode constants for this property.

Applies only to embedded fonts.

The default value is flash.text.engine.RenderingMode.CFF.

To set values for this property, use the following string values:

String valueDescription
RenderingMode.NORMALApplies the regular text rendering, which matches the type of rendering that Flash Player 7 and earlier versions used.
RenderingMode.CFFApplies CFF rendering, which makes text more legible. (This feature became available in Flash Player 10.) CFF rendering allows for high-quality rendering of font faces at small sizes.



Implementation
    public function get renderingMode():String
    public function set renderingMode(value:String):void

Throws
ArgumentError — If set to any value which is not a member of flash.text.engine.RenderingMode.
 
IllegalOperationError — If set after the FontDescription object is locked (locked is true).

See also

Constructor Detail

FontDescription

()Constructor
public function FontDescription(fontName:String = "_serif", fontWeight:String = "normal", fontPosture:String = "normal", fontLookup:String = "device", renderingMode:String = "cff", cffHinting:String = "horizontalStem")

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Creates a FontDescription object.

Parameters
fontName:String (default = "_serif") — The name of the font to use, or a comma-separated list of font names.
 
fontWeight:String (default = "normal") — Specifies the font weight.
 
fontPosture:String (default = "normal") — Specifies the font posture.
 
fontLookup:String (default = "device") — Specifies how to look up the font.
 
renderingMode:String (default = "cff") — The rendering mode used for this text. Use flash.text.engine.RenderingMode constants for this property.
 
cffHinting:String (default = "horizontalStem") — The type of CFF hinting used for this text. Use flash.text.engine.CFFHinting constants for this property.

Throws
ArgumentError — The fontWeight specified is not a member of flash.text.engine.FontWeight.
 
ArgumentError — The fontPosture specified is not a member of flash.text.engine.FontPosture.
 
ArgumentError — The fontLookup specified is not a member of flash.text.engine.FontLookup.
 
ArgumentError — The renderingMode specified is not a member of flash.text.engine.RenderingMode.
 
ArgumentError — The cffHinting specified is not a member of flash.text.engine.CFFHinting.
Method Detail

clone

()method
public function clone():FontDescription

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Constructs an unlocked, cloned copy of the FontDescription.

Returns
FontDescription — An unlocked copy of the FontDescription object.

Example  ( How to use this example )

This example creates a FontDescription object, assigns a device font to it, sets various font properties, and assigns the new object (and therefore locking it) to an ElementFormat object. A new TextElement is created, using the ElementFormat, and the TextElement is used as content for a TextBlock. A line of text is created from the TextBlock.

To modify the FontDescription object, first check its locked property. If true, use the clone() method to create an unlocked copy of the FontDescription, change its properties, and assign it to a new ElementFormat object. Then re-link the new ElementFormat to the TextBlock. When the lines are re-broken, the new lines will have the new font settings.


package {

    import flash.display.Sprite;
    import flash.text.engine.*;

    
    public class FontDescription_cloneExample extends Sprite {
        private var fd:FontDescription;
        private var fd2:FontDescription;
        
        public function FontDescription_cloneExample():void {
            fd = new FontDescription();
            fd.fontLookup = flash.text.engine.FontLookup.DEVICE;
            fd.fontName = "Palatino";
            fd.fontWeight = flash.text.engine.FontWeight.BOLD;
            fd.fontPosture = flash.text.engine.FontPosture.ITALIC;

            var ef1:ElementFormat = new ElementFormat(fd);
            
            var str:String = "This is flash text 0123456789";
            var tb:TextBlock = new TextBlock();
            var te1:TextElement = new TextElement(str, ef1);
            tb.content = te1;
            var line1:TextLine = tb.createTextLine(null, 600);
            addChild(line1);
            
            fd2 = (fd.locked) ? fd.clone() : fd;    
            fd2.fontWeight = flash.text.engine.FontWeight.NORMAL;
            var ef2:ElementFormat = new ElementFormat(fd2);

            tb.content.elementFormat=ef2;
            var line2:TextLine = tb.createTextLine(null, 600);
            addChild(line2);
            
        }
    }    
}

isFontCompatible

()method 
public static function isFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Returns true if an embedded font is available with the specified fontName, fontWeight, and fontPosture where Font.fontType is flash.text.FontType.EMBEDDED_CFF. Starting with Flash Player 10 two kinds of embedded fonts can appear in a SWF file. Normal embedded fonts are only used by TextField. CFF embedded fonts are only used by the flash.text.engine classes. The two types are distinguised by the fontType property of the Font class, as returned by the enumerateFonts() function.

The flash.text.engine classes cannot use a font of type EMBEDDED. If fontLookup is set to FontLookup.EMBEDDED_CFF and the only font available at run time with the specified name, weight, and posture is of type EMBEDDED, Flash Player falls back to device fonts on a glyph-by-glyph basis to render the text, as if no embedded font were available with the specified name and style.

If both EMBEDDED and EMBEDDED_CFF fonts are available with the same name, weight, and posture, the EMBEDDED_CFF font is selected and text renders with the EMBEDDED_CFF font.

Parameters

fontName:String — The name of the embedded font to check.
 
fontWeight:String — Specifies the font weight. Use flash.text.engine.FontWeight.
 
fontPosture:String — Specifies the font posture. Use flash.text.engine.FontPosture.

Returns
Booleantrue if a compatible embedded font is available, otherwise false.

Throws
ArgumentError — The fontWeight specified is not a member of flash.text.engine.FontWeight.
 
ArgumentError — The fontPosture specified is not a member of flash.text.engine.FontPosture.

See also

FontDescriptionExample.as

This example creates a FontDescription object, assigns a device font to it, sets various font properties, and assigns the new object to an ElementFormat object. Additional font formatting is done within ElementFormat. A new TextElement is created, using the ElementFormat, and the TextElement is used as content for a TextBlock. A line of text is created from the TextBlock.


package {

    import flash.display.Sprite;
    import flash.text.engine.*;

    
    public class FontDescriptionExample extends Sprite {
        
        public function FontDescriptionExample():void {
            var fd:FontDescription = new FontDescription();
            fd.fontLookup = flash.text.engine.FontLookup.DEVICE;
            fd.fontName = "Palatino";
            fd.fontWeight = flash.text.engine.FontWeight.BOLD;
            fd.fontPosture = flash.text.engine.FontPosture.ITALIC;

            var ef1:ElementFormat = new ElementFormat(fd);
            ef1.fontSize = 30;
            ef1.color = 0xFF0000;
            
            var str:String = "This is flash text 0123456789";
            var tb:TextBlock = new TextBlock();
            var te1:TextElement = new TextElement(str, ef1);
            tb.content = te1;
            var line1:TextLine = tb.createTextLine(null, 600);
            addChild(line1);
            
        }
    }    
}