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

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
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
  
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 current selection.
SelectionManager
  
Gets the container format attributes that are common to all containers in the current selection.
SelectionManager
  
Gets the paragraph format attributes that are common to all paragraphs in the 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
 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 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
  
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
absoluteEndproperty
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
absoluteStartproperty 
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
activePositionproperty 
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
anchorPositionproperty 
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
currentSelectionFormatproperty 
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

editingModeproperty 
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

focusedproperty 
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
focusedSelectionFormatproperty 
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

inactiveSelectionFormatproperty 
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

pointFormatproperty 
protected var pointFormat:flashx.textLayout.formats:ITextLayoutFormat

The format that will be applied to inserted text.

textFlowproperty 
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

unfocusedSelectionFormatproperty 
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

windowActiveproperty 
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

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():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 current selection.

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

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():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 current selection.

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

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():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 current selection.

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

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

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

Examples (  How to use this example  )
SelectionManager_example.as

This example shows the use of the SelectionManager class.

It sets up a Div element that contains a paragraph with text. The Div is added to a TextFlow object (tf), which is composed to a display object container. A new SelectionManager is assigned as the TextFlow's interactionManager.

Three existing button objects (selectable, copytoclip, and pastefromclip) are assumed to be on the stage in this example. Event listeners assigned to these buttons are used to manipulate the SelectionManager.

package {
    import flash.display.Sprite;
    import flashx.textLayout.edit.TextClipboard;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.edit.SelectionManager;
    import flashx.textLayout.elements.DivElement;
    import flashx.textLayout.elements.ParagraphElement;
    import flashx.textLayout.elements.SpanElement;
    import flashx.textLayout.container.ContainerController;
    import flash.events.MouseEvent;

    public class SelectionManager_ex extends Sprite
    {
        private var tf:TextFlow;
        private var sm:SelectionManager;
        
        public function SelectionManager_ex()
        {
            //define TextFlow and manager objects
            tf = new TextFlow();
            sm = new SelectionManager();
            tf.interactionManager = sm;
            
            //define elements to contain text
            var d:DivElement = new DivElement();
            var p:ParagraphElement = new ParagraphElement();
            var s:SpanElement = new SpanElement();
            s.text ="This is sample text for the SelectionManager example.";
            
            //add these elements to the TextFlow
            p.addChild(s);
            d.addChild(p);
            tf.addChild(d);    
            
            //compose TextFlow to display
            tf.flowComposer.addController(new ContainerController(this,600,600));
            tf.flowComposer.updateAllContainers();
            
            //add event handlers to existing button objects on the stage
            selectable.addEventListener(MouseEvent.CLICK, updateToBeSelectable);
            copytoclip.addEventListener(MouseEvent.CLICK, copySelToClipboard);
            pastefromclip.addEventListener(MouseEvent.CLICK, pasteFromClipboard);            
        }
        private function updateToBeSelectable(me:MouseEvent):void{
            undo.enabled = true;
            tf.interactionManager = sm;
        }
        private function copySelToClipboard(me:MouseEvent):void{
            if(sm.hasSelection()) {
                var ts:TextScrap = sm.createTextScrap;
                sm.setContents(ts);
            }
        }
        private function pasteFromClipboard(me:MouseEvent):void{
            var ts:TextScrap = TextClipboard.getContents();
            sm.pasteTextScrap(ts);
        }

        
    }        
}