flash.text.engine

# FontDescription - AS3

Package | flash.text.engine
Class | public final class FontDescription
Inheritance | FontDescription Object

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5, Flash Lite 4

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

More examples

Formatting text
Working with fonts

Related API Elements

ElementFormat.fontDescription

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | cffHinting : String The type of CFF hinting used for this text. | FontDescription
|  | constructor : 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
|  | renderingMode : String The rendering mode used for this text. | FontDescription

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined 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
|  | clone():FontDescription Constructs an unlocked, cloned copy of the FontDescription. | FontDescription
|  | hasOwnProperty(name:String):Boolean 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
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | valueOf():Object 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, Flash Lite 4

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`.
| `IllegalOperationError` — If set after the FontDescription object is locked (`locked` is `true`).

More examples

Rendering mode and hinting

Related API Elements

CFFHinting
FontDescription.renderingMode
RenderingMode

### fontLookup

property

`fontLookup:String`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5, Flash Lite 4

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

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

More examples

Embedded versus device fonts

Related API Elements

CFFHinting
FontLookup

### 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. 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

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

Related API Elements

FontLookup

### fontPosture

property

`fontPosture:String`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5, Flash Lite 4

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`.
| `IllegalOperationError` — If set after the FontDescription object is locked (`locked` is `true`).

Related API Elements

FontPosture

### fontWeight

property

`fontWeight:String`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5, Flash Lite 4

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`.
| `IllegalOperationError` — If set after the FontDescription object is locked (`locked` is `true`).

Related API Elements

FontWeight

### locked

property

`locked:Boolean`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5., Flash Lite 4

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`).

More examples

Locking and cloning FontDescription

### renderingMode

property

`renderingMode:String`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5, Flash Lite 4

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`.
| `IllegalOperationError` — If set after the FontDescription object is locked (`locked` is `true`).

More examples

Rendering mode and hinting

Related API Elements

RenderingMode
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, Flash Lite 4

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 Versions: | Flash Player 10, AIR 1.5, Flash Lite 4

Constructs an unlocked, cloned copy of the FontDescription.

Returns

| `FontDescription` — An unlocked copy of the `FontDescription` object.

More examples

Locking and cloning FontDescription
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.

Copy

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

            }
        }
    }

### isDeviceFontCompatible

()
method

`public static function isDeviceFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10.1, 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

| `Boolean` — `true` 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`.

Related API Elements

fontLookup
TextBlock.createTextLine()
FontPosture
FontWeight

### 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, Flash Lite 4

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

| `Boolean` — `true` 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`.

Related API Elements

fontLookup
TextBlock.createTextLine()
FontType.EMBEDDED_CFF
FontPosture
FontWeight
Examples How to use this example
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`.

Copy

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

            }
        }
    }

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00