flashx.textLayout.elements

# TextFlow - AS3

Package | flashx.textLayout.elements
Class | public class TextFlow
Inheritance | TextFlow ContainerFormattedElement ParagraphFormattedElement FlowGroupElement FlowElement Object
Implements | IEventDispatcher

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The TextFlow class is responsible for managing all the text content of a story. In TextLayout, text is stored in a hierarchical tree of elements. TextFlow is the root object of the element tree. All elements on the tree derive from the base class, FlowElement.

A TextFlow object can have ParagraphElement and DivElement objects as children. A div (DivElement object) represents a group of paragraphs (ParagraphElement objects). A paragraph can have SpanElement, InlineGraphicElement, LinkElement, and TCYElement objects as children.

A span (SpanElement) is a range of text in a paragraph that has the same attributes. An image (InlineGraphicElement) represents an arbitrary graphic that appears as a single character in a line of text. A LinkElement represents a hyperlink, or HTML `a` tag, and it can contain multiple spans. A TCYElement object is used in Japanese text when there is a small run of text that appears perpendicular to the line, as in a horizontal run within a vertical line. A TCYElement also can contain multiple spans.

TextFlow also derives from the ContainerFormattedElement class, which is the root class for all container-level block elements.

The following illustration shows the relationship of other elements, such as spans and paragraphs, to the TextFlow object.

Each TextFlow object has a corresponding Configuration object that allows you to specify initial character and paragraph formats and the initial container format. It also allows you to specify attributes for selection, links, focus, and scrolling. When you supply a Configuration object as parameter to the `TextFlow()` constructor, it creates a read-only snapshot that you can access through the `TextFlow.configuration` property. After creation, you can't change the TextFlow's configuration. If you do not specify a Configuration, you can access the default configuration through the `TextFlow.defaultConfiguration` property.

Default MXML Property `mxmlChildren`

View the examples

More examples

Creating TextFlow objects

Related API Elements

configuration
IConfiguration
DivElement
FlowElement
FlowGroupElement
FlowLeafElement
IFlowComposer
ParagraphElement
SpanElement

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | alignmentBaseline : * TextLayoutFormat: Specifies the baseline to which the dominant baseline aligns. | FlowElement
|  | backgroundAlpha : * TextLayoutFormat: Alpha (transparency) value for the background (adopts default value if undefined during cascade). | FlowElement
|  | backgroundColor : * TextLayoutFormat: Background color of the text (adopts default value if undefined during cascade). | FlowElement
|  | baselineShift : * TextLayoutFormat: Amount to shift the baseline from the dominantBaseline value. | FlowElement
|  | blockProgression : * TextLayoutFormat: Specifies a vertical or horizontal progression of line placement. | FlowElement
|  | breakOpportunity : * TextLayoutFormat: Controls where lines are allowed to break when breaking wrapping text into multiple lines. | FlowElement
|  | cffHinting : * TextLayoutFormat: The type of CFF hinting used for this text. | FlowElement
|  | clearFloats : * TextLayoutFormat: Controls how text wraps around a float. | FlowElement
|  | color : * TextLayoutFormat: Color of the text. | FlowElement
|  | columnCount : * TextLayoutFormat: Number of text columns (adopts default value if undefined during cascade). | FlowElement
|  | columnGap : * TextLayoutFormat: Specifies the amount of gutter space, in pixels, to leave between the columns (adopts default value if undefined during cascade). | FlowElement
|  | columnWidth : * TextLayoutFormat: Column width in pixels (adopts default value if undefined during cascade). | FlowElement
|  | computedFormat : flashx.textLayout.formats:ITextLayoutFormat [read-only] Returns the computed format attributes that are in effect for this element. | FlowElement
|  | configuration : IConfiguration [read-only] The Configuration object for this TextFlow object. | TextFlow
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | coreStyles : Object [read-only] Returns the coreStyles on this FlowElement. | FlowElement
|  | defaultConfiguration : Configuration [static] Default configuration for all new TextFlow objects if the configuration is not specified. | TextFlow
|  | digitCase : * TextLayoutFormat: The type of digit case used for this text. | FlowElement
|  | digitWidth : * TextLayoutFormat: Type of digit width used for this text. | FlowElement
|  | direction : * TextLayoutFormat: Specifies the default bidirectional embedding level of the text in the text block. | FlowElement
|  | dominantBaseline : * TextLayoutFormat: Specifies which element baseline snaps to the alignmentBaseline to determine the vertical position of the element on the line. | FlowElement
|  | firstBaselineOffset : * TextLayoutFormat: Specifies the baseline position of the first line in the container. | FlowElement
|  | flowComposer : IFlowComposer [override] Manages the containers for this element. | TextFlow
|  | fontFamily : * TextLayoutFormat: The name of the font to use, or a comma-separated list of font names. | FlowElement
|  | fontLookup : * TextLayoutFormat: Font lookup to use. | FlowElement
|  | fontSize : * TextLayoutFormat: The size of the text in pixels. | FlowElement
|  | fontStyle : * TextLayoutFormat: Style of text. | FlowElement
|  | fontWeight : * TextLayoutFormat: Weight of text. | FlowElement
|  | format : flashx.textLayout.formats:ITextLayoutFormat TextLayoutFormat properties applied directly to this element. | FlowElement
|  | formatResolver : IFormatResolver A callback function for resolving element styles. | TextFlow
|  | generation : uint [read-only] The generation number for this TextFlow object. | TextFlow
|  | hostFormat : flashx.textLayout.formats:ITextLayoutFormat The TextLayoutFormat object for this TextFlow object. | TextFlow
|  | id : String Assigns an identifying name to the element, making it possible to set a style for the element by referencing the id. | FlowElement
|  | interactionManager : ISelectionManager The InteractionManager associated with this TextFlow object. | TextFlow
|  | justificationRule : * TextLayoutFormat: Rule used to justify text in a paragraph. | FlowElement
|  | justificationStyle : * TextLayoutFormat: The style used for justification of the paragraph. | FlowElement
|  | kerning : * TextLayoutFormat: Kerning adjusts the pixels between certain character pairs to improve readability. | FlowElement
|  | leadingModel : * TextLayoutFormat: Specifies the leading model, which is a combination of leading basis and leading direction. | FlowElement
|  | ligatureLevel : * TextLayoutFormat: Controls which of the ligatures that are defined in the font may be used in the text. | FlowElement
|  | lineBreak : * TextLayoutFormat: Controls word wrapping within the container (adopts default value if undefined during cascade). | FlowElement
|  | lineHeight : * TextLayoutFormat: Leading controls for the text. | FlowElement
|  | lineThrough : * TextLayoutFormat: If true, applies strikethrough, a line drawn through the middle of the text. | FlowElement
|  | linkActiveFormat : * TextLayoutFormat: Defines the formatting attributes used for links in normal state. | FlowElement
|  | linkHoverFormat : * TextLayoutFormat: Defines the formatting attributes used for links in hover state, when the mouse is within the bounds (rolling over) a link. | FlowElement
|  | linkNormalFormat : * TextLayoutFormat: Defines the formatting attributes used for links in normal state. | FlowElement
|  | listAutoPadding : * TextLayoutFormat: This specifies an auto indent for the start edge of lists when the padding value of the list on that side is auto. | FlowElement
|  | listMarkerFormat : * TextLayoutFormat: Defines the formatting attributes list markers. | FlowElement
|  | listStylePosition : * TextLayoutFormat: Legal values are ListStylePosition.INSIDE, ListStylePosition.OUTSIDE, FormatValue.INHERIT. Default value is undefined indicating not set. If undefined during the cascade this property will inherit its value from an ancestor. | FlowElement
|  | listStyleType : * TextLayoutFormat: Legal values are ListStyleType.UPPER_ALPHA, ListStyleType.LOWER_ALPHA, ListStyleType.UPPER_ROMAN, ListStyleType.LOWER_ROMAN, ListStyleType.NONE, ListStyleType.DISC, ListStyleType.CIRCLE, ListStyleType.SQUARE, ListStyleType.BOX, ListStyleType.CHECK, ListStyleType.DIAMOND, ListStyleType.HYPHEN, ListStyleType.ARABIC_INDIC, ListStyleType.BENGALI, ListStyleType.DECIMAL, ListStyleType.DECIMAL_LEADING_ZERO, ListStyleType.DEVANAGARI, ListStyleType.GUJARATI, ListStyleType.GURMUKHI, ListStyleType.KANNADA, ListStyleType.PERSIAN, ListStyleType.THAI, ListStyleType.URDU, ListStyleType.CJK_EARTHLY_BRANCH, ListStyleType.CJK_HEAVENLY_STEM, ListStyleType.HANGUL, ListStyleType.HANGUL_CONSTANT, ListStyleType.HIRAGANA, ListStyleType.HIRAGANA_IROHA, ListStyleType.KATAKANA, ListStyleType.KATAKANA_IROHA, ListStyleType.LOWER_ALPHA, ListStyleType.LOWER_GREEK, ListStyleType.LOWER_LATIN, ListStyleType.UPPER_ALPHA, ListStyleType.UPPER_GREEK, ListStyleType.UPPER_LATIN, FormatValue.INHERIT. Default value is undefined indicating not set. If undefined during the cascade this property will inherit its value from an ancestor. | FlowElement
|  | locale : * TextLayoutFormat: The locale of the text. | FlowElement
|  | mxmlChildren : Array Appends an array of children to this object. | FlowGroupElement
|  | numChildren : int [read-only] Returns the number of FlowElement children that this FlowGroupElement object has. | FlowGroupElement
|  | paddingBottom : * TextLayoutFormat: Bottom inset in pixels. | FlowElement
|  | paddingLeft : * TextLayoutFormat: Left inset in pixels. | FlowElement
|  | paddingRight : * TextLayoutFormat: Right inset in pixels. | FlowElement
|  | paddingTop : * TextLayoutFormat: Top inset in pixels. | FlowElement
|  | paragraphEndIndent : * TextLayoutFormat: A Number that specifies, in pixels, the amount to indent the paragraph's end edge. | FlowElement
|  | paragraphSpaceAfter : * TextLayoutFormat: A Number that specifies the amount of space, in pixels, to leave after the paragraph. | FlowElement
|  | paragraphSpaceBefore : * TextLayoutFormat: A Number that specifies the amount of space, in pixels, to leave before the paragraph. | FlowElement
|  | paragraphStartIndent : * TextLayoutFormat: A Number that specifies, in pixels, the amount to indent the paragraph's start edge. | FlowElement
|  | parent : FlowGroupElement [read-only] Returns the parent of this FlowElement object. | FlowElement
|  | parentRelativeEnd : int [read-only] Returns the relative end of this FlowElement object in the parent. | FlowElement
|  | parentRelativeStart : int [read-only] Returns the relative start of this FlowElement object in the parent. | FlowElement
|  | renderingMode : * TextLayoutFormat: The rendering mode used for this text. | FlowElement
|  | styleName : * TextLayoutFormat: Assigns an identifying class to the element, making it possible to set a style for the element by referencing the styleName. | FlowElement
|  | styles : Object [read-only] Returns the styles on this FlowElement. | FlowElement
|  | tabStops : * TextLayoutFormat: Specifies the tab stops associated with the paragraph. | FlowElement
|  | textAlign : * TextLayoutFormat: Alignment of lines in the paragraph relative to the container. | FlowElement
|  | textAlignLast : * TextLayoutFormat: Alignment of the last (or only) line in the paragraph relative to the container in justified text. | FlowElement
|  | textAlpha : * TextLayoutFormat: Alpha (transparency) value for the text. | FlowElement
|  | textDecoration : * TextLayoutFormat: Decoration on text. | FlowElement
|  | textIndent : * TextLayoutFormat: A Number that specifies, in pixels, the amount to indent the first line of the paragraph. | FlowElement
|  | textJustify : * TextLayoutFormat: Specifies options for justifying text. | FlowElement
|  | textLength : int [read-only] Returns the total length of text owned by this FlowElement object and its children. | FlowElement
|  | textRotation : * TextLayoutFormat: Determines the number of degrees to rotate this text. | FlowElement
|  | tracking : Object [write-only] Sets the tracking and is synonymous with the trackingRight property. | FlowElement
|  | trackingLeft : * TextLayoutFormat: Number in pixels (or percent of fontSize, like 120%) indicating the amount of tracking (manual kerning) to be applied to the left of each character. | FlowElement
|  | trackingRight : * TextLayoutFormat: Number in pixels (or percent of fontSize, like 120%) indicating the amount of tracking (manual kerning) to be applied to the right of each character. | FlowElement
|  | typeName : String Each FlowElement has a typeName. | FlowElement
|  | typographicCase : * TextLayoutFormat: The type of typographic case used for this text. | FlowElement
|  | userStyles : Object Allows you to read and write user styles on a FlowElement object. | FlowElement
|  | verticalAlign : * TextLayoutFormat: Vertical alignment or justification (adopts default value if undefined during cascade). | FlowElement
|  | whiteSpaceCollapse : * TextLayoutFormat: Collapses or preserves whitespace when importing text into a TextFlow. | FlowElement
|  | wordSpacing : * TextLayoutFormat: Specifies the optimum, minimum, and maximum spacing (as a multiplier of the width of a normal space) between words to use during justification. | FlowElement

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | TextFlow(config:IConfiguration = null) Constructor - creates a new TextFlow instance. | TextFlow
|  | addChild(child:FlowElement):FlowElement Appends a child FlowElement object. | FlowGroupElement
|  | addChildAt(index:uint, child:FlowElement):FlowElement Adds a child FlowElement object at the specified index position. | FlowGroupElement
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | TextFlow
|  | clearStyle(styleProp:String):void Clears the style specified by the styleProp parameter from this FlowElement object. | FlowElement
|  | deepCopy(relativeStart:int = 0, relativeEnd:int = -1):FlowElement Makes a deep copy of this FlowElement object, including any children, copying the content between the two specified character positions and returning the copy as a FlowElement object. | FlowElement
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | TextFlow
|  | equalUserStyles(otherElement:FlowElement):Boolean Compare the userStyles of this with otherElement's userStyles. | FlowElement
|  | findChildIndexAtPosition(relativePosition:int):int Given a relative text position, find the index of the first child FlowElement that contains the relative position. | FlowGroupElement
|  | findLeaf(relativePosition:int):FlowLeafElement Given a relative text position, find the leaf element that contains the position. | FlowGroupElement
|  | getAbsoluteStart():int Returns the start location of the element in the text flow as an absolute index. | FlowElement
|  | getCharAtPosition(relativePosition:int):String Returns the character at the specified position, relative to this FlowElement object. | FlowElement
|  | getCharCodeAtPosition(relativePosition:int):int Returns the character code at the specified position, relative to this FlowElement. | FlowElement
|  | getChildAt(index:int):FlowElement Returns the FlowElement child at the specified index. | FlowGroupElement
|  | getChildIndex(child:FlowElement):int Searches in children for the specified FlowElement object and returns its index position. | FlowGroupElement
|  | getElementByID(idName:String):FlowElement Returns an element whose id property matches the idName parameter. | TextFlow
|  | getElementRelativeStart(ancestorElement:FlowElement):int Returns the start of this element relative to an ancestor element. | FlowElement
|  | getElementsByStyleName(styleNameValue:String):Array Returns all elements that have styleName set to styleNameValue. | TextFlow
|  | getElementsByTypeName(typeNameValue:String):Array Returns all elements that have typeName set to typeNameValue. | TextFlow
|  | getFirstLeaf():FlowLeafElement Returns the first FlowLeafElement descendant of this group. | FlowGroupElement
|  | getLastLeaf():FlowLeafElement Returns the last FlowLeafElement descendent of this group. | FlowGroupElement
|  | getNextSibling():FlowElement Returns the next FlowElement sibling in the text flow hierarchy. | FlowElement
|  | getParagraph():ParagraphElement Returns the ParagraphElement object associated with this element. | FlowElement
|  | getPreviousSibling():FlowElement Returns the previous FlowElement sibling in the text flow hierarchy. | FlowElement
|  | getStyle(styleProp:String):* Returns the value of the style specified by the styleProp parameter, which specifies the style name and can include any user style name. | FlowElement
|  | getText(relativeStart:int = 0, relativeEnd:int = -1, paragraphSeparator:String = " "):String [override] | FlowGroupElement
|  | getTextFlow():flashx.textLayout.elements:TextFlow Climbs the text flow hierarchy to return the root TextFlow object for the element. | FlowElement
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | TextFlow
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | initialized(document:Object, id:String):void Called for MXML objects after the implementing object has been created and all component properties specified on the MXML tag have been initialized. | FlowElement
|  | invalidateAllFormats():void Invalidates all formatting information for the TextFlow, forcing it to be recomputed. | TextFlow
|  | 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
|  | removeChild(child:FlowElement):FlowElement Removes the specified child FlowElement object from the group. | FlowGroupElement
|  | removeChildAt(index:uint):FlowElement Removes the child FlowElement object at the specified index position. | FlowGroupElement
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | TextFlow
|  | replaceChildren(beginChildIndex:int, endChildIndex:int, ... rest):void Replaces child elements in the group with the specified new elements. | FlowGroupElement
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | setStyle(styleProp:String, newValue:*):void Sets the style specified by the styleProp parameter to the value specified by the newValue parameter. | FlowElement
|  | shallowCopy(relativeStart:int = 0, relativeEnd:int = -1):FlowElement Makes a copy of this FlowElement object, copying the content between two specified character positions. | FlowElement
|  | splitAtIndex(childIndex:int):FlowGroupElement Splits this object at the position specified by the childIndex parameter. | FlowGroupElement
|  | splitAtPosition(relativePosition:int):FlowElement Splits this FlowElement object at the position specified by the relativePosition parameter, which is a relative position in the text for this element. | FlowElement
|  | 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
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | TextFlow

Events
Click for more information on events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | click | Dispatched when any link is clicked. | TextFlow
|  | compositionComplete | Dispatched after every recompose. | TextFlow
|  | damage | Dispatched by a TextFlow object each time it is damaged You can use this event to find out that the TextFlow has changed, but do not access the TextFlow itself when this event is sent out. | TextFlow
|  | flowOperationBegin | Defines the value of the type property of a flowOperationBegin event object. | TextFlow
|  | flowOperationComplete | Defines the value of the type property of a flowOperationComplete event object. | TextFlow
|  | flowOperationEnd | Defines the value of the type property of a flowOperationEnd event object. | TextFlow
|  | inlineGraphicStatusChanged | Dispatched when a InlineGraphicElement is resized due to having width or height as auto or percent and the graphic has finished loading. | TextFlow
|  | mouseDown | Dispatched when the mouse is pressed down over any link. | TextFlow
|  | mouseMove | Dispatched when the mouse passes over any link. | TextFlow
|  | mouseUp | Dispatched when the mouse is released over any link. | TextFlow
|  | rollOut | Dispatched when the mouse goes out of any link. | TextFlow
|  | rollOver | Dispatched when the mouse first enters any link. | TextFlow
|  | scroll | Dispatched by a TextFlow object after text is scrolled within a controller container. | TextFlow
|  | selectionChange | Dispatched whenever the selection is changed. | TextFlow
|  | updateComplete | Dispatched by a TextFlow object each time a container has had new DisplayObjects added or updated as a result of composition. | TextFlow

Property Detail

### configuration

property

`configuration:IConfiguration` [read-only]

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The Configuration object for this TextFlow object. The Configuration object specifies the initial character and paragraph formats, the initial container format, and attributes for selection highlighting, links, focus, and scrolling.

If you do not specify a Configuration object, Text Layout Framework uses a default Configuration object, which is referenced by the `defaultConfiguration` property.

Implementation
`public function get configuration():IConfiguration`

Related API Elements

Configuration
defaultConfiguration

### defaultConfiguration

property

`public static var defaultConfiguration:Configuration`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Default configuration for all new TextFlow objects if the configuration is not specified.

Related API Elements

Configuration

### flowComposer

property

`flowComposer:IFlowComposer`[override]

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Manages the containers for this element.

The TextLines that are created from the element appear as children of the container. The flowComposer manages the containers, and as the text is edited it adds lines to and removes lines from the containers. The flowComposer also keeps track of some critical attributes, such as the width and height to compose to, whether scrolling is on, and so on.

The container and `flowComposer` are closely related. If you reset `flowComposer`, the container is reset to the new flowComposer's container. Likewise if the container is reset, `flowComposer` is reset to the container's new flowComposer.

Implementation
`override public function get flowComposer():IFlowComposer`
`override public function set flowComposer(value:IFlowComposer):void`

Related API Elements

FlowComposer

### formatResolver

property

`formatResolver:IFormatResolver`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

A callback function for resolving element styles. You can use this to provide styling using CSS or named styles, for example.

Implementation
`public function get formatResolver():IFormatResolver`
`public function set formatResolver(value:IFormatResolver):void`

Related API Elements

IFormatResolver

### generation

property

`generation:uint` [read-only]

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The generation number for this TextFlow object. The undo and redo operations use the generation number to validate that it's legal to undo or redo an operation. The generation numbers must match.

Each model change increments `generation` so if the generation number changes, you know the TextFlow model has changed.

Implementation
`public function get generation():uint`

### hostFormat

property

`hostFormat:flashx.textLayout.formats:ITextLayoutFormat`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The TextLayoutFormat object for this TextFlow object. This enables several optimizations for reusing host formats. For example;

Copy

            textFlowA.hostFormat = textFlowB.hostFormat

You must set format values before assigning the TextLayoutFormat object to `hostFormat`. For example, the following lines do not set the font size to 24 because the font size is set after the TextLayoutFormat object has been assigned to `hostFormat`.
Copy

            format = new TextLayoutFormat()
            textFlow.hostFormat = format
            format.fontSize = 24;

Implementation
`public function get hostFormat():flashx.textLayout.formats:ITextLayoutFormat`
`public function set hostFormat(value:flashx.textLayout.formats:ITextLayoutFormat):void`

Related API Elements

ITextLayoutFormat

### interactionManager

property

`interactionManager:ISelectionManager`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The InteractionManager associated with this TextFlow object.

Controls all selection and editing on the text. If the TextFlow is not selectable, the interactionManager is null. To make the TextFlow editable, assign a interactionManager that is both an ISelectionManager and an IEditManager. To make a TextFlow that is read-only and allows selection, assign a interactionManager that is an ISelectionManager only.

Implementation
`public function get interactionManager():ISelectionManager`
`public function set interactionManager(value:ISelectionManager):void`

Related API Elements

ISelectionManager
IEditManager
Constructor Detail

### TextFlow

()
Constructor

`public function TextFlow(config:IConfiguration = null)`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Constructor - creates a new TextFlow instance.

If you provide a `config` parameter, the contents of the Configuration object are copied and you cannot make changes. You can access configuration settings, however, through the `configuration` property. If the `config` parameter is null, you can access the default configuration settings through the `defaultConfiguration` property.

The Configuration object provides a mechanism for setting configurable default attributes on a TextFlow. While you can't make changes to the Configuration object, you can override default attributes, if necessary, by setting the attributes of TextFlow and its children.

Parameters

| `config:IConfiguration` (default = `null`)`` — Specifies the configuration to use for this TextFlow object. If it's null, use `TextFlow.defaultConfiguration` to access configuration values.

Related API Elements

Configuration
configuration
defaultConfiguration
Method Detail

### addEventListener

()
method

`public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. You can register event listeners on all nodes in the display list for a specific type of event, phase, and priority.

After you successfully register an event listener, you cannot change its priority through additional calls to `addEventListener()`. To change a listener's priority, you must first call `removeEventListener()`. Then you can register the listener again with the new priority level.

After the listener is registered, subsequent calls to `addEventListener()` with a different value for either `type` or `useCapture` result in the creation of a separate listener registration. For example, if you first register a listener with `useCapture` set to `true`, it listens only during the capture phase. If you call `addEventListener()` again using the same listener object, but with `useCapture` set to `false`, you have two separate listeners: one that listens during the capture phase, and another that listens during the target and bubbling phases.

You cannot register an event listener for only the target phase or the bubbling phase. Those phases are coupled during registration because bubbling applies only to the ancestors of the target node.

When you no longer need an event listener, remove it by calling `EventDispatcher.removeEventListener()`; otherwise, memory problems might result. Objects with registered event listeners are not automatically removed from memory because the garbage collector does not remove objects that still have references.

Copying an EventDispatcher instance does not copy the event listeners attached to it. (If your newly created node needs an event listener, you must attach the listener after creating the node.) However, if you move an EventDispatcher instance, the event listeners attached to it move along with it.

If the event listener is being registered on a node while an event is also being processed on this node, the event listener is not triggered during the current phase but may be triggered during a later phase in the event flow, such as the bubbling phase.

If an event listener is removed from a node while an event is being processed on the node, it is still triggered by the current actions. After it is removed, the event listener is never invoked again (unless it is registered again for future processing).

Parameters

| `type:String` — The type of event.
| `listener:Function` — The listener function that processes the event. This function must accept an event object as its only parameter and must return nothing, as this example shows: `function(evt:Event):void` The function can have any name.
| `useCapture:Boolean` (default = `false`)`` — Determines whether the listener works in the capture phase or the target and bubbling phases. If `useCapture` is set to `true`, the listener processes the event only during the capture phase and not in the target or bubbling phase. If `useCapture` is `false`, the listener processes the event only during the target or bubbling phase. To listen for the event in all three phases, call `addEventListener()` twice, once with `useCapture` set to `true`, then again with `useCapture` set to `false`.
| `priority:int` (default = `0`)`` — The priority level of the event listener. Priorities are designated by a 32-bit integer. The higher the number, the higher the priority. All listeners with priority n are processed before listeners of priority n-1. If two or more listeners share the same priority, they are processed in the order in which they were added. The default priority is 0.
| `useWeakReference:Boolean` (default = `false`)`` — Determines whether the reference to the listener is strong or weak. A strong reference (the default) prevents your listener from being garbage-collected. A weak reference does not. Class-level member functions are not subject to garbage collection, so you can set `useWeakReference` to `true` for class-level member functions without subjecting them to garbage collection. If you set `useWeakReference` to `true` for a listener that is a nested inner function, the function will be garbge-collected and no longer persistent. If you create references to the inner function (save it in another variable) then it is not garbage-collected and stays persistent.

### dispatchEvent

()
method

`public function dispatchEvent(event:Event):Boolean`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatches an event into the event flow. The event target is the EventDispatcher object upon which `dispatchEvent()` is called.

Parameters

| `event:Event` — The event object dispatched into the event flow.

Returns

| `Boolean` — A value of `true` unless `preventDefault()` is called on the event, in which case it returns `false`.

### getBackgroundManager

()
method

`tlf_internal function getBackgroundManager():BackgroundManager`

Returns

| `BackgroundManager`

### getElementByID

()
method

`public function getElementByID(idName:String):FlowElement`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Returns an element whose `id` property matches the `idName` parameter. Provides the ability to apply a style based on the `id`.

For example, the following line sets the style "color" to 0xFF0000 (red), for the element having the `id` span1.

Copy

             textFlow.getElementByID("span1").setStyle("color", 0xFF0000);

Note: In the following code, `p.addChild(s)` removes `s` from its original parent and adds it to `p`, the new parent.

Copy

             var s:SpanElement = new SpanElement();
             var p:ParagraphElement = new ParagraphElement();
             ...
             s = textFlow.getElementByID("span3") as SpanElement;
             p.addChild(s);
             textFlow.addChild(p);

Parameters

| `idName:String` — The `id` value of the element to find.

Returns

| `FlowElement` — The element whose id matches `idName`.

Related API Elements

FlowElement.id
Example ( How to use this example )
This example imports xml markup into a TextFlow object and calls `getElementByID()` to access the span with the id `span3` and set its color to red.
Copy

    package flashx.textLayout.elements.examples {
        import flash.display.Sprite;

        import flashx.textLayout.conversion.TextConverter;
        import flashx.textLayout.container.ContainerController;
        import flashx.textLayout.elements.ParagraphElement;
        import flashx.textLayout.elements.SpanElement;
        import flashx.textLayout.elements.TextFlow;

        public class TextFlow_getElementByIDExample extends Sprite
        {
            public function TextFlow_getElementByIDExample()
            {
                // create the TextFlow object
                var textFlow:TextFlow = new TextFlow();

                // xml markup that defines the attributes and contents of a text flow
                var simpleText:String = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<flow:TextFlow xmlns:flow=\"http://ns.adobe.com/textLayout/2008\" verticalScrollPolicy=\"auto\" horizontalScrollPolicy=\"auto\" fontSize=\"14\" textIndent=\"15\" marginBottom=\"15\" paddingTop=\"4\" paddingLeft=\"4\">"+
                    "<flow:p>"+
                        "<flow:span id='span1'>In the first paragraph of the </flow:span>"+
                        "<flow:span id='span2' fontStyle=\"italic\">cheap </flow:span>"+
                        "<flow:span id='span3'>Western novel, a cowboy meets a saloon girl.</flow:span>"+
                    "</flow:p>"+
                "</flow:TextFlow>";
                var s:SpanElement = new SpanElement();
                var s2:SpanElement = new SpanElement();
                var p:ParagraphElement = new ParagraphElement();
                // import the xml markup into a TextFlow object and display it on the stage
                textFlow = TextConverter.importToFlow(simpleText, TextConverter.TEXT_LAYOUT_FORMAT);
                // get element with ID of span3, make a copy of it
                textFlow.getElementByID("span3").setStyle("color", 0xFF0000);
                textFlow.flowComposer.addController(new ContainerController(this, 200, 800));
                textFlow.flowComposer.updateAllControllers();
            }
        }
    }

### getElementsByStyleName

()
method

`public function getElementsByStyleName(styleNameValue:String):Array`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Returns all elements that have `styleName` set to `styleNameValue`.

Parameters

| `styleNameValue:String` — The name of the style for which to find elements that have it set.

Returns

| `Array` — An array of the elements whose `styleName` value matches `styleNameValue`. For example, all elements that have the style name "color".

Related API Elements

FlowElement.styleName

### getElementsByTypeName

()
method

`public function getElementsByTypeName(typeNameValue:String):Array`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Returns all elements that have `typeName` set to `typeNameValue`.

Parameters

| `typeNameValue:String` — The name of the style for which to find elements that have it set.

Returns

| `Array` — An array of the elements whose `typeName` value matches `typeNameValue`. For example, all elements that have the type name "foo".

Related API Elements

FlowElement.styleName

### hasEventListener

()
method

`public function hasEventListener(type:String):Boolean`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Checks whether the EventDispatcher object has any listeners registered for a specific type of event. This allows you to determine where an EventDispatcher object has altered handling of an event type in the event flow hierarchy. To determine whether a specific event type will actually trigger an event listener, use `IEventDispatcher.willTrigger()`.

The difference between `hasEventListener()` and `willTrigger()` is that `hasEventListener()` examines only the object to which it belongs, whereas `willTrigger()` examines the entire event flow for the event specified by the `type` parameter.

Parameters

| `type:String` — The type of event.

Returns

| `Boolean` — A value of `true` if a listener of the specified type is registered; `false` otherwise.

### invalidateAllFormats

()
method

`public function invalidateAllFormats():void`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Invalidates all formatting information for the TextFlow, forcing it to be recomputed. Call this method when styles have changed.

Related API Elements

IFormatResolver.invalidateAll()

### removeEventListener

()
method

`public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Removes a listener from the EventDispatcher object. If there is no matching listener registered with the EventDispatcher object, a call to this method has no effect.

Parameters

| `type:String` — The type of event.
| `listener:Function` — The listener object to remove.
| `useCapture:Boolean` (default = `false`)`` — Specifies whether the listener was registered for the capture phase or the target and bubbling phases. If the listener was registered for both the capture phase and the target and bubbling phases, two calls to `removeEventListener()` are required to remove both: one call with `useCapture` set to `true`, and another call with `useCapture` set to `false`.

### willTrigger

()
method

`public function willTrigger(type:String):Boolean`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. This method returns `true` if an event listener is triggered during any phase of the event flow when an event of the specified type is dispatched to this EventDispatcher object or any of its descendants.

The difference between `hasEventListener()` and `willTrigger()` is that `hasEventListener()` examines only the object to which it belongs, whereas `willTrigger()` examines the entire event flow for the event specified by the `type` parameter.

Parameters

| `type:String` — The type of event.

Returns

| `Boolean` — A value of `true` if a listener of the specified type will be triggered; `false` otherwise.

Event Detail

### click

Event

Event Object Type: `flashx.textLayout.events.FlowElementMouseEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched when any link is clicked.

### compositionComplete

Event

Event Object Type: `flashx.textLayout.events.CompositionCompleteEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched after every recompose.

### damage

Event

Event Object Type: `flashx.textLayout.events.DamageEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched by a TextFlow object each time it is damaged You can use this event to find out that the TextFlow has changed, but do not access the TextFlow itself when this event is sent out. This event is sent when TextFlow changes are partially complete, so it can be in an inconsistent state: some changes have been mad already, and other changes are still pending. Get the information you need from the event, and make required changes after control returns to your application.

### flowOperationBegin

Event

Event Object Type: `flashx.textLayout.events.FlowOperationEvent`
property FlowOperationEvent.type = `flashx.textLayout.events.FlowOperationEvent.FLOW_OPERATION_BEGIN`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `flowOperationBegin` event object. Dispatched before an operation is executed. Cancelling this event blocks the operation.

### flowOperationComplete

Event

Event Object Type: `flashx.textLayout.events.FlowOperationEvent`
property FlowOperationEvent.type = `flashx.textLayout.events.FlowOperationEvent.FLOW_OPERATION_COMPLETE`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `flowOperationComplete` event object. Dispatched after all operations including pending and composite operations are completed, composition is finished and the display is scrolled.

### flowOperationEnd

Event

Event Object Type: `flashx.textLayout.events.FlowOperationEvent`
property FlowOperationEvent.type = `flashx.textLayout.events.FlowOperationEvent.FLOW_OPERATION_END`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `flowOperationEnd` event object. Dispatched after an operation completes. Any errors are stored in `OperationEvent.error`. If there is an error, cancelling this event blocks the rethrow of the error. Generally speaking all errors are likely to be fatal.

Changing an operation at this time (after it has been executed) may fail.

### inlineGraphicStatusChanged

Event

Event Object Type: `flashx.textLayout.events.StatusChangeEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched when a InlineGraphicElement is resized due to having width or height as auto or percent and the graphic has finished loading.

### mouseDown

Event

Event Object Type: `flashx.textLayout.events.FlowElementMouseEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched when the mouse is pressed down over any link.

### mouseMove

Event

Event Object Type: `flashx.textLayout.events.FlowElementMouseEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched when the mouse passes over any link.

### mouseUp

Event

Event Object Type: `flashx.textLayout.events.FlowElementMouseEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched when the mouse is released over any link.

### rollOut

Event

Event Object Type: `flashx.textLayout.events.FlowElementMouseEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched when the mouse goes out of any link.

### rollOver

Event

Event Object Type: `flashx.textLayout.events.FlowElementMouseEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched when the mouse first enters any link.

### scroll

Event

Event Object Type: `flashx.textLayout.events.TextLayoutEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched by a TextFlow object after text is scrolled within a controller container.

### selectionChange

Event

Event Object Type: `flashx.textLayout.events.SelectionEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched whenever the selection is changed. Primarily used to update selection-dependent user interface. It can also be used to alter the selection, but cannot be used to alter the TextFlow itself.

### updateComplete

Event

Event Object Type: `flashx.textLayout.events.UpdateCompleteEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Dispatched by a TextFlow object each time a container has had new DisplayObjects added or updated as a result of composition.

Examples How to use this example
TextFlowExample.as
This example creates a TextFlow instance with an initial format configuration and adds a ParagraphElement object and a SpanElement object to display Hello World.
Copy

    package flashx.textLayout.elements.examples {
        import flash.display.Sprite;

        import flashx.textLayout.container.ContainerController;
        import flashx.textLayout.elements.Configuration;
        import flashx.textLayout.elements.ParagraphElement;
        import flashx.textLayout.elements.SpanElement;
        import flashx.textLayout.elements.TextFlow;
        import flashx.textLayout.formats.TextLayoutFormat;
        import flashx.textLayout.formats.TextAlign;
        import flash.text.engine.FontPosture;
        import flash.text.engine.Kerning;

        public class TextFlowExample extends Sprite
        {
            public function TextFlowExample()
            {
                var config:Configuration = new Configuration();
                var textLayoutFormat:TextLayoutFormat = new TextLayoutFormat();
                textLayoutFormat.color = 0xFF0000;
                textLayoutFormat.fontFamily = "Arial, Helvetica, _sans";
                textLayoutFormat.fontSize = 48;
                textLayoutFormat.kerning = Kerning.ON;
                textLayoutFormat.fontStyle = FontPosture.ITALIC;
                textLayoutFormat.textAlign = TextAlign.CENTER;
                config.textFlowInitialFormat = textLayoutFormat;
                var textFlow:TextFlow = new TextFlow(config);
                var p:ParagraphElement = new ParagraphElement();
                var span:SpanElement = new SpanElement();
                span.text = "Hello, World!";
                p.addChild(span);
                textFlow.addChild(p);
                textFlow.flowComposer.addController(new ContainerController(this,500,200));
                textFlow.flowComposer.updateAllControllers();
            }
        }
    }

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