Adobe® Flex® 4 Language Reference
Show Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
flashx.textLayout.edit 
SelectionManager 
Packageflashx.textLayout.edit
Classpublic class SelectionManager
InheritanceSelectionManager Inheritance Object
Implements ISelectionManager
Subclasses EditManager

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

The SelectionManager class manages text selection in a text flow.

The selection manager keeps track of the selected text range, manages its formatting, and can handle events affecting the selection. To allow a user to make selections in a text flow, assign a SelectionManager object to the interactionManager property of the flow. (To allow editing, assign an instance of the EditManager class, which extends SelectionManager.)

The following table describes how the SelectionManager class handles keyboard shortcuts:

TB,LTRTB,RTLTL,LTRRL,RTL
nonectrlalt|ctrl+altnonectrlalt|ctrl+altnonectrlalt|ctrl+altnonectrlalt|ctrl+alt
leftarrowpreviousCharacterpreviousWordpreviousWordnextCharacternextWordnextWordnextLineendOfDocumentendOfParagraphnextLineendOfDocumentendOfParagraph
uparrowpreviousLinestartOfDocumentstartOfParagraphpreviousLinestartOfDocumentstartOfParagraphpreviousCharacterpreviousWordpreviousWordnextCharacternextWordnextWord
rightarrownextCharacternextWordnextWordpreviousCharacterpreviousWordpreviousWordpreviousLinestartOfDocumentstartOfParagraphpreviousLinestartOfDocumentstartOfParagraph
downarrownextLineendOfDocumentendOfParagraphnextLineendOfDocumentendOfParagraphnextCharacternextWordnextWordpreviousCharacterpreviousWordpreviousWord
homestartOfLinestartOfDocumentstartOfLinestartOfLinestartOfDocumentstartOfLinestartOfLinestartOfDocumentstartOfLinestartOfLinestartOfDocumentstartOfLine
endendOfLineendOfDocumentendOfLineendOfLineendOfDocumentendOfLineendOfLineendOfDocumentendOfLineendOfLineendOfDocumentendOfLine
pagedownnextPagenextPagenextPagenextPagenextPagenextPagenextPagenextPagenextPagenextPagenextPagenextPage
pageuppreviousPagepreviousPagepreviousPagepreviousPagepreviousPagepreviousPagepreviousPagepreviousPagepreviousPagepreviousPagepreviousPagepreviousPage

Key:

  • none = no modifier
  • ctrl, shift, alt = modifiers
  • alt-key and ctrl+alt-key are the same on all platforms (on some platforms alt-key does not get to TLF)
  • shift key modifes to extend the active end of the selection in the specified manner
  • TB (top-to-bottom),RL (right-to-left) are textFlow level blockProgression settings
  • LTR (left-to-right),RTL (right-to-left) are textFlow level direction settings
  • next and prev in logical order in the textFlow - the effect in RTL text is that the selection moves in the physical direction

View the examples

See also

EditManager
flashx.elements.TextFlow


Public Properties
 PropertyDefined By
  absoluteEnd : int
[read-only] The text position of the end of the selection, as an offset from the start of the text flow.
SelectionManager
  absoluteStart : int
[read-only] The text position of the start of the selection, as an offset from the start of the text flow.
SelectionManager
  activePosition : int
[read-only] The active point of the selection.
SelectionManager
  anchorPosition : int
[read-only] The anchor point of the selection.
SelectionManager
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  currentSelectionFormat : SelectionFormat
[read-only] The current SelectionFormat object.
SelectionManager
  editingMode : String
[read-only] The editing mode.
SelectionManager
  focused : Boolean
[read-only] Indicates whether a container in the text flow has the focus.
SelectionManager
  focusedSelectionFormat : SelectionFormat
The SelectionFormat object used to draw the selection in a focused container.
SelectionManager
  inactiveSelectionFormat : SelectionFormat
The SelectionFormat object used to draw the selection when it is not in the active window.
SelectionManager
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  textFlow : flashx.textLayout.elements:TextFlow
The TextFlow object managed by this selection manager.
SelectionManager
  unfocusedSelectionFormat : SelectionFormat
The SelectionFormat object used to draw the selection when it is not in a focused container, but is in the active window.
SelectionManager
  windowActive : Boolean
[read-only] Indicates whether the window associated with the text flow is active.
SelectionManager
Protected Properties
 PropertyDefined By
  pointFormat : flashx.textLayout.formats:ITextLayoutFormat
[read-only] The format that will be applied to inserted text.
SelectionManager
Public Methods
 MethodDefined By
  
Creates a SelectionManager object.
SelectionManager
  
Processes an activate event.
SelectionManager
  
Processes a deactivate event.
SelectionManager
  
Perform a SelectionManager operation - these may never modify the flow but clients still are able to cancel them.
SelectionManager
  
Processes an edit event.
SelectionManager
  
SelectionManager
  
Processes a focusChange event.
SelectionManager
  
Processes a focusIn event.
SelectionManager
  
Processes a focusOut event.
SelectionManager
  
Gets the character format attributes that are common to all characters in the specified text range or current selection.
SelectionManager
  
Gets the container format attributes that are common to all containers in the specified text range or current selection.
SelectionManager
  
Gets the paragraph format attributes that are common to all paragraphs in the specified text range or current selection.
SelectionManager
  
Gets the SelectionState object of the current selection.
SelectionManager
 Inherited
Indicates whether an object has a specified property defined.
Object
  
Indicates whether there is a selection.
SelectionManager
  
Processes an imeStartComposition event
SelectionManager
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
  
Indicates whether the selection covers a range of text.
SelectionManager
  
Processes a keyDown event.
SelectionManager
  
Processes a keyFocusChange event.
SelectionManager
  
Processes a keyUp event.
SelectionManager
  
Processes a menuSelect event.
SelectionManager
  
Processes a mouseDoubleClick event.
SelectionManager
  
Processes a mouseDown event.
SelectionManager
  
Processes a mouseMove event.
SelectionManager
  
Processes a mouseOut event.
SelectionManager
  
Processes a mouseOver event.
SelectionManager
  
Processes a mouseUp event.
SelectionManager
  
Processes a mouseWheel event.
SelectionManager
  
notifyInsertOrDelete(absolutePosition:int, length:int):void
Updates the selection manager when text is inserted or deleted.
SelectionManager
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
  
Redisplays the selection shapes.
SelectionManager
  
SelectionManager
  
selectRange(anchorPosition:int, activePosition:int):void
SelectionManager
  
Gives the focus to the first container in the selection.
SelectionManager
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
  
Sets the SelectionState object of the current selection.
SelectionManager
  
Processes a TextEvent.
SelectionManager
 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

absoluteEnd

property
absoluteEnd:int  [read-only]

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

The text position of the end of the selection, as an offset from the start of the text flow.

The absolute end is the same as either the active or the anchor point of the selection, whichever comes last in the text flow.



Implementation
    public function get absoluteEnd():int

absoluteStart

property 
absoluteStart:int  [read-only]

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

The text position of the start of the selection, as an offset from the start of the text flow.

The absolute start is the same as either the active or the anchor point of the selection, whichever comes first in the text flow.



Implementation
    public function get absoluteStart():int

activePosition

property 
activePosition:int  [read-only]

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

The active point of the selection.

The active point is the volatile end of the selection. The active point is changed when the selection is modified. The active point can be at either the beginning or the end of the selection.



Implementation
    public function get activePosition():int

anchorPosition

property 
anchorPosition:int  [read-only]

The anchor point of the selection.

An anchor point is the stable end of the selection. When the selection is extended, the anchor point does not change. The anchor point can be at either the beginning or the end of the selection.



Implementation
    public function get anchorPosition():int

currentSelectionFormat

property 
currentSelectionFormat:SelectionFormat  [read-only]

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

The current SelectionFormat object.

The current SelectionFormat object is chosen from the SelectionFormat objects assigned to the unfocusedSelectionFormat, inactiveSelectionFormat and focusedSelectionFormat properties based on the current state of the windowActive and focused properties.



Implementation
    public function get currentSelectionFormat():SelectionFormat

See also

editingMode

property 
editingMode:String  [read-only]

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

The editing mode.

The editing mode indicates whether the text flow supports selection, editing, or only reading. A text flow is made selectable by assigning a selection manager and editable by assigning an edit manager. Constants representing the editing modes are defined in the EditingMode class.



Implementation
    public function get editingMode():String

See also

focused

property 
focused:Boolean  [read-only]

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

Indicates whether a container in the text flow has the focus.

The focused property is true if any of the containers in the text flow has key focus.



Implementation
    public function get focused():Boolean

focusedSelectionFormat

property 
focusedSelectionFormat:SelectionFormat

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

The SelectionFormat object used to draw the selection in a focused container.



Implementation
    public function get focusedSelectionFormat():SelectionFormat
    public function set focusedSelectionFormat(value:SelectionFormat):void

See also

inactiveSelectionFormat

property 
inactiveSelectionFormat:SelectionFormat

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

The SelectionFormat object used to draw the selection when it is not in the active window.



Implementation
    public function get inactiveSelectionFormat():SelectionFormat
    public function set inactiveSelectionFormat(value:SelectionFormat):void

See also

pointFormat

property 
pointFormat:flashx.textLayout.formats:ITextLayoutFormat  [read-only]

The format that will be applied to inserted text. TBD: pointFormat needs to be extended to remember user styles and "undefine" of formats from calls to IEditManager.undefineFormat with leafFormat values on a point selection.



Implementation
    protected function get pointFormat():flashx.textLayout.formats:ITextLayoutFormat

textFlow

property 
textFlow:flashx.textLayout.elements:TextFlow

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

The TextFlow object managed by this selection manager.

A selection manager manages a single text flow. A selection manager can also be assigned to a text flow by setting the interactionManager property of the TextFlow object.



Implementation
    public function get textFlow():flashx.textLayout.elements:TextFlow
    public function set textFlow(value:flashx.textLayout.elements:TextFlow):void

See also

unfocusedSelectionFormat

property 
unfocusedSelectionFormat:SelectionFormat

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

The SelectionFormat object used to draw the selection when it is not in a focused container, but is in the active window.



Implementation
    public function get unfocusedSelectionFormat():SelectionFormat
    public function set unfocusedSelectionFormat(value:SelectionFormat):void

See also

windowActive

property 
windowActive:Boolean  [read-only]

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

Indicates whether the window associated with the text flow is active.

The windowActive property is true if the window displaying with the text flow is the active window.



Implementation
    public function get windowActive():Boolean
Constructor Detail

SelectionManager

()Constructor
public function SelectionManager()

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

Creates a SelectionManager object.

Assign a SelectionManager object to the interactionManager property of a text flow to enable text selection.

Method Detail

activateHandler

()method
public function activateHandler(event:Event):void

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

Processes an activate event.

Parameters

event:Event

deactivateHandler

()method 
public function deactivateHandler(event:Event):void

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

Processes a deactivate event.

Parameters

event:Event

doOperation

()method 
public function doOperation(op:FlowOperation):void

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

Perform a SelectionManager operation - these may never modify the flow but clients still are able to cancel them.

Parameters

op:FlowOperation

editHandler

()method 
public function editHandler(event:Event):void

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

Processes an edit event.

Edit events are dispatched for cut, copy, paste, and selectAll commands.

Parameters

event:Event

flushPendingOperations

()method 
public function flushPendingOperations():void

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

focusChangeHandler

()method 
public function focusChangeHandler(event:FocusEvent):void

Processes a focusChange event.

Parameters

event:FocusEvent

focusInHandler

()method 
public function focusInHandler(event:FocusEvent):void

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

Processes a focusIn event.

Parameters

event:FocusEvent

focusOutHandler

()method 
public function focusOutHandler(event:FocusEvent):void

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

Processes a focusOut event.

Parameters

event:FocusEvent

getCommonCharacterFormat

()method 
public function getCommonCharacterFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:ITextLayoutFormat

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

Gets the character format attributes that are common to all characters in the specified text range or current selection.

Format attributes that do not have the same value for all characters in the specified element range or selection are set to null in the returned ITextLayoutFormat instance.

Parameters

range:flashx.textLayout.elements:TextRange (default = null) — The optional range of text for which common attributes are requested. If null, the current selection is used.

Returns
flashx.textLayout.formats:ITextLayoutFormat — The common character style settings

Example  ( How to use this example )

The following example illustrates how to get an ITextLayoutFormat object containing the character style settings common to all elements in the selection. (The textFlow variable in the example is a TextFlow object.)
 var common:ITextLayoutFormat = textFlow.interactionManager.getCommonCharacterFormat();

getCommonContainerFormat

()method 
public function getCommonContainerFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:ITextLayoutFormat

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

Gets the container format attributes that are common to all containers in the specified text range or current selection.

Format attributes that do not have the same value for all containers in the specified element range or selection are set to null in the returned ITextLayoutFormat instance.

Parameters

range:flashx.textLayout.elements:TextRange (default = null) — The optional range of text for which common attributes are requested. If null, the current selection is used.

Returns
flashx.textLayout.formats:ITextLayoutFormat — The common container style settings

Example  ( How to use this example )

The following example illustrates how to get an ITextLayoutFormat object containing the container style settings common to all elements in the selection. (The textFlow variable in the example is a TextFlow object.)
 var common:ITextLayoutFormat = textFlow.interactionManager.getCommonContainerFormat();

getCommonParagraphFormat

()method 
public function getCommonParagraphFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:ITextLayoutFormat

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

Gets the paragraph format attributes that are common to all paragraphs in the specified text range or current selection.

Format attributes that do not have the same value for all paragraphs in the specified element range or selection are set to null in the returned ITextLayoutFormat instance.

Parameters

range:flashx.textLayout.elements:TextRange (default = null) — The optional range of text for which common attributes are requested. If null, the current selection is used.

Returns
flashx.textLayout.formats:ITextLayoutFormat — The common paragraph style settings

Example  ( How to use this example )

The following example illustrates how to get an ITextLayoutFormat object containing the paragraph style settings common to all elements in the selection. (The textFlow variable in the example is a TextFlow object.)
 var common:ITextLayoutFormat = textFlow.interactionManager.getCommonParagraphFormat();

getSelectionState

()method 
public function getSelectionState():SelectionState

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

Gets the SelectionState object of the current selection.

Returns
SelectionState

See also


Example  ( How to use this example )

The following example gets a SelectionState object for the current selection in a text flow. (The textFlow variable in the example is a TextFlow object.)
 var selection:SelectionState = textFlow.interactionManager.getSelectionState();

hasSelection

()method 
public function hasSelection():Boolean

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

Indicates whether there is a selection.

Returns true if there is either a range selection or a point selection. By default, when a selection manager is first set up, there is no selection (the start and end are -1).

Returns
Boolean

Example  ( How to use this example )

The following example illustrates how to determine whether there a text flow has a selection. (The textFlow variable in the example is a TextFlow object.)
 var selection:SelectionState = textFlow.interactionManager.hasSelection();

imeStartCompositionHandler

()method 
public function imeStartCompositionHandler(event:IMEEvent):void

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

Processes an imeStartComposition event

Parameters

event:IMEEvent

isRangeSelection

()method 
public function isRangeSelection():Boolean

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

Indicates whether the selection covers a range of text.

Returns true if there is a selection that extends past a single position.

Returns
Boolean

Example  ( How to use this example )

The following example illustrates how to determine whether the current selection in a text flow extends over a range of text. (The textFlow variable in the example is a TextFlow object.)
 var selection:SelectionState = textFlow.interactionManager.isRangeSelection();

keyDownHandler

()method 
public function keyDownHandler(event:KeyboardEvent):void

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

Processes a keyDown event.

Parameters

event:KeyboardEvent

keyFocusChangeHandler

()method 
public function keyFocusChangeHandler(event:FocusEvent):void

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

Processes a keyFocusChange event.

Parameters

event:FocusEvent

keyUpHandler

()method 
public function keyUpHandler(event:KeyboardEvent):void

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

Processes a keyUp event.

Parameters

event:KeyboardEvent

menuSelectHandler

()method 
public function menuSelectHandler(event:ContextMenuEvent):void

Processes a menuSelect event.

Parameters

event:ContextMenuEvent

mouseDoubleClickHandler

()method 
public function mouseDoubleClickHandler(event:MouseEvent):void

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

Processes a mouseDoubleClick event.

Parameters

event:MouseEvent

mouseDownHandler

()method 
public function mouseDownHandler(event:MouseEvent):void

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

Processes a mouseDown event.

Parameters

event:MouseEvent

mouseMoveHandler

()method 
public function mouseMoveHandler(event:MouseEvent):void

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

Processes a mouseMove event.

Parameters

event:MouseEvent

mouseOutHandler

()method 
public function mouseOutHandler(event:MouseEvent):void

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

Processes a mouseOut event.

Parameters

event:MouseEvent

mouseOverHandler

()method 
public function mouseOverHandler(event:MouseEvent):void

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

Processes a mouseOver event.

Parameters

event:MouseEvent

mouseUpHandler

()method 
public function mouseUpHandler(event:MouseEvent):void

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

Processes a mouseUp event.

Parameters

event:MouseEvent

mouseWheelHandler

()method 
public function mouseWheelHandler(event:MouseEvent):void

Processes a mouseWheel event.

Parameters

event:MouseEvent

notifyInsertOrDelete

()method 
public function notifyInsertOrDelete(absolutePosition:int, length:int):void

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

Updates the selection manager when text is inserted or deleted.

Operations must call notifyInsertOrDelete when changing the text in the text flow. The selection manager adjusts index-based position indicators accordingly. If you create a new Operation class that changes text in a text flow directly (not using another operation) your operation must call this function to keep the selection up to date.

Parameters

absolutePosition:int — The point in the text where the change was made.
 
length:int — A positive or negative number indicating how many characters were inserted or deleted.


Example  ( How to use this example )

The following example illustrates how a function in a custom Operation class would call the notifyInsertOrDelete() method.

This function replaces a range of text in a SpanElement as part of some hypothetical operation.

 import flashx.textLayout.elements.SpanElement;
 

function doReplace( span:SpanElement, newText:String, relativeStart:int, relativeEnd:int ):void
{
    span.replaceText(  relativeStart, relativeEnd, newText );
    var parentFlow:TextFlow = span.getTextFlow();
    var lengthDifference:int = newText.length - (relativeEnd - relativeStart);

    parentFlow.interactionManager.notifyInsertOrDelete(    span.getAbsoluteStart() + relativeStart, lengthDifference );
}

refreshSelection

()method 
public function refreshSelection():void

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

Redisplays the selection shapes.

Note: You do not need to call this method directly. It is called automatically.

selectAll

()method 
public function selectAll():void

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

See also

selectRange

()method 
public function selectRange(anchorPosition:int, activePosition:int):void

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

Parameters

anchorPosition:int
 
activePosition:int

See also

setFocus

()method 
public function setFocus():void

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

Gives the focus to the first container in the selection.


Example  ( How to use this example )

The following example sets the focus to the first container in the current selection of a text flow. (The textFlow variable in the example is a TextFlow object.)
 textFlow.interactionManager.setFocus();

setSelectionState

()method 
public function setSelectionState(sel:SelectionState):void

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

Sets the SelectionState object of the current selection.

Parameters

sel:SelectionState

See also

textInputHandler

()method 
public function textInputHandler(event:flash.events:TextEvent):void

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

Processes a TextEvent.

Parameters

event:flash.events:TextEvent

SelectionManager_example.as

This example shows the use of the SelectionManager class.

It sets up a TextFlow, and a listener for selection changes, then updates based on the selection changes.

package flashx.textLayout.edit.examples {
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.SelectionManager;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.formats.ITextLayoutFormat;
    import flashx.textLayout.events.SelectionEvent;

    public class SelectionManager_example extends Sprite
    {
        private var textFlow:TextFlow;
        
        public function SelectionManager_example()
        {
            //define TextFlow, and make it read-select
            textFlow = TextConverter.importToFlow("This is sample text for the SelectionManager example.",
                TextConverter.PLAIN_TEXT_FORMAT);
            textFlow.interactionManager = new SelectionManager();
            
            //compose TextFlow to display
            textFlow.flowComposer.addController(new ContainerController(this,600,600));
            textFlow.flowComposer.updateAllControllers();
            
            //add event handlers to the TextFlow to detect when selection changes
            textFlow.addEventListener(SelectionEvent.SELECTION_CHANGE, selectionChanged);
        }

        private function selectionChanged(selectionEvent:SelectionEvent):void
        {
            var format:ITextLayoutFormat = textFlow.interactionManager.getCommonCharacterFormat();
            // do something here - perhaps update the application's UI based on the formatting
            // attributes applied in the current selected text range
        }
        
    }        
}