Packageflash.text.engine
Classpublic final class FontDescription
InheritanceFontDescription Inheritance Object

Language version: ActionScript 3.0
Runtime version: AIR 1.5

The FontDescription class represents the information necessary to describe a font.

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 (Flash Text Engine) 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

ElementFormat.fontDescription


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
  
createFromByteArray(fontName:String, fontData:ByteArray, fontWeight:String = "normal", fontPosture:String = "normal"):FontDescription
[static] Creates a FontDescription object using font data loaded dynamically from a file.
FontDescription
 Inherited
Indicates whether an object has a specified property defined.
Object
  
isDeviceFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
[static] Returns true if a usable device font is available with the specified fontName, fontWeight, and fontPosture.
FontDescription
  
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
cffHintingproperty
cffHinting:String  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

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

The type of CFF (Compact Font Format) hinting used determines whether the Flash runtime forces strong horizontal stems to fit to a sub-pixel grid or not.

Applies only to embedded fonts.

The default value is CFFHinting.HORIZONTAL_STEM.

For the CFFHinting property, you can use the following constants from the CFFHinting class:

String value Description
CFFHinting.NONE Specifies 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_STEM Specifies CFF hinting. Strong horizontal stems are fit to the sub-pixel grid on a screen. 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 CFFHinting.
 
Error — If set after the FontDescription object is locked (locked is true).

See also

fontLookupproperty 
fontLookup:String  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

Specifies how the font should be looked up.

The default value is FontLookup.DEVICE.

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

String value Description
FontLookup.DEVICE The runtime looks up a device font with the specified name on the local system with which to render the text.
FontLookup.EMBEDDED_CFF The runtime 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 application, the runtime attempts to use a fallback device 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
Error — If set after the FontDescription object is locked (locked is true).

See also

fontNameproperty 
fontName:String  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

The name of the font to use, or a comma-separated list of font names. The runtime 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 runtimes support three generic device font names: _sans (for sans serif fonts), _serif (for serif fonts), and _typewriter (for mono-space fonts). These are mapped to specific device fonts depending on the platform.

The default value is "_serif".

Flash runtimes provide 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, the runtime 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
Error — If set after the FontDescription object is locked (locked is true).

See also

fontPostureproperty 
fontPosture:String  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

Specifies the font posture.

The default value is FontPosture.NORMAL.

To set values for this property, use the following constants from the FontPosture class:

Value Description
FontPosture.NORMAL Normal font posture.
FontPosture.ITALIC Italic 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 FontPosture.
 
Error — If set after the FontDescription object is locked (locked is true).

See also

fontWeightproperty 
fontWeight:String  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

Specifies the font weight.

The default value is FontWeight.NORMAL.

To set values for this property, use the following constants from the FontWeight class:

String value Description
FontWeight.NORMAL Normal font weight.
FontWeight.BOLD Bold 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 FontWeight.
 
Error — If set after the FontDescription object is locked (locked is true).

See also

lockedproperty 
locked:Boolean  [read-write]

Language version: ActionScript 3.0
Runtime version: 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
Error — If set after the FontDescription object is locked (locked is true).
renderingModeproperty 
renderingMode:String  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

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

Applies only to embedded fonts.

The default value is RenderingMode.CFF.

To set values for this property, use the following constants from the RenderingMode class:

String value Description
RenderingMode.NORMAL Applies the regular text rendering, which matches the type of rendering that Flash Player 7 and earlier versions used.
RenderingMode.CFF Applies CFF (Compact Font Format) 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 RenderingMode.
 
Error — 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 version: 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 RenderingMode constants for this property.
 
cffHinting:String (default = "horizontalStem") — The type of CFF (Compact Font Format) hinting used for this text. Use CFFHinting constants for this property.

Throws
ArgumentError — The fontWeight specified is not a member of FontWeight.
 
ArgumentError — The fontPosture specified is not a member of FontPosture.
 
ArgumentError — The fontLookup specified is not a member of FontLookup.
 
ArgumentError — The renderingMode specified is not a member of RenderingMode.
 
ArgumentError — The cffHinting specified is not a member of CFFHinting.
Method detail
clone()method
public function clone():FontDescription

Language version: ActionScript 3.0
Runtime version: AIR 1.5

Constructs an unlocked, cloned copy of the FontDescription.

Returns
FontDescription — An unlocked copy of the FontDescription object.

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);
			
		}
	}	
}

createFromByteArray()method 
public static function createFromByteArray(fontName:String, fontData:ByteArray, fontWeight:String = "normal", fontPosture:String = "normal"):FontDescription

Language version: ActionScript 3.0
Runtime version: AIR 51

Creates a FontDescription object using font data loaded dynamically from a file.

Parameters
fontName:String — A string that can be used to identify the font when creating future FontDescription objects
 
fontData:ByteArray — A byte array containing the font data you want to use. This should be in OpenType format with CFF outlines.
 
fontWeight:String (default = "normal") — Whether the font is bold or not (use FontWeight). Defaults to normal.
 
fontPosture:String (default = "normal") — Whether the font is italic or not (use FontPosture). Defaults to normal.

Returns
FontDescription — The new FontDescription created from the provided font.

Throws
ArgumentError — The fontData specified is not in the correct OpenType/CFF format.
 
ArgumentError — The fontWeight specified is not a member of FontWeight.
 
ArgumentError — The fontPosture specified is not a member of FontPosture.
isDeviceFontCompatible()method 
public static function isDeviceFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean

Language version: ActionScript 3.0
Runtime version: AIR 2

Returns true if a usable device font is available with the specified fontName, fontWeight, and fontPosture.

The flash.text.engine classes can only use OpenType and TrueType device fonts. If a font based on an older font technology is used, the runtime falls back to known good device fonts on a glyph-by-glyph basis to render the text

Parameters
fontName:String — The name of the device font to check.
 
fontWeight:String — Specifies the font weight. Use FontWeight.
 
fontPosture:String — Specifies the font posture. Use FontPosture.

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

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

See also

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

Language version: ActionScript 3.0
Runtime version: 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 application content. 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, the runtime 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 FontWeight.
 
fontPosture:String — Specifies the font posture. Use FontPosture.

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

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

See also

Examples
examples\FontDescriptionExample

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);
			
		}
	}	
}