ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
flashx.textLayout.events 

SelectionEvent  - AS3

Packageflashx.textLayout.events
Classpublic class SelectionEvent
InheritanceSelectionEvent Inheritance Event Inheritance Object

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

A TextFlow instance dispatches a SelectionEvent object when an EditManager or SelectionManager changes or selects a range of text. For example, this event is dispatched not only when a range of text is selected, but also when the selection changes because the user clicks elsewhere in the text flow. Moreover, this event is also dispatched when an EditManager changes the text or text formatting within a range of text.

View the examples



Public Properties
 PropertyDefined By
 Inheritedbubbles : Boolean
[read-only] Indicates whether an event is a bubbling event.
Event
 Inheritedcancelable : Boolean
[read-only] Indicates whether the behavior associated with the event can be prevented.
Event
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 InheritedcurrentTarget : Object
[read-only] The object that is actively processing the Event object with an event listener.
Event
 InheritedeventPhase : uint
[read-only] The current phase in the event flow.
Event
  selectionState : SelectionState
An object of type SelectionState that represents the selected range associated with this SelectionEvent.
SelectionEvent
 Inheritedtarget : Object
[read-only] The event target.
Event
 Inheritedtype : String
[read-only] The type of event.
Event
Public Methods
 MethodDefined By
  
SelectionEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, selectionState:SelectionState = null)
Creates an event object that contains information about a flow operation.
SelectionEvent
 Inherited
Duplicates an instance of an Event subclass.
Event
 Inherited
formatToString(className:String, ... arguments):String
A utility function for implementing the toString() method in custom ActionScript 3.0 Event classes.
Event
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Checks whether the preventDefault() method has been called on the event.
Event
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Cancels an event's default behavior if that behavior can be canceled.
Event
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Prevents processing of any event listeners in the current node and any subsequent nodes in the event flow.
Event
 Inherited
Prevents processing of any event listeners in nodes subsequent to the current node in the event flow.
Event
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns a string containing all the properties of the Event object.
Event
 Inherited
Returns the primitive value of the specified object.
Object
Public Constants
 ConstantDefined By
  SELECTION_CHANGE : String = "selectionChange"
[static] The SelectionEvent.SELECTION_CHANGE constant defines the value of the type property of the event object for a selection event.
SelectionEvent
Property Detail

selectionState

property
selectionState:SelectionState

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

An object of type SelectionState that represents the selected range associated with this SelectionEvent.

You can use this property, along with the ElementRange class, to create an ElementRange instance that represents the range of selected text. You can use the following line of code to create an instance of the ElementRange class that represents the range of selected text (the ev variable represents the event object, and the conditional operator is used to guard against a null value for the selectionState property):

         // Find selected element range
         var range:ElementRange = ev.selectionState ?  
             ElementRange.createElementRange(ev.selectionState.textFlow,
             ev.selectionState.absoluteStart, ev.selectionState.absoluteEnd) : null;


Implementation
    public function get selectionState():SelectionState
    public function set selectionState(value:SelectionState):void

Related API Elements

Constructor Detail

SelectionEvent

()Constructor
public function SelectionEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, selectionState:SelectionState = null)

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

Creates an event object that contains information about a flow operation.

Parameters
type:String — The type of the event. Event listeners can access this information through the inherited type property. There is only one type of SelectionEvent: SelectionEvent.SELECTION_CHANGE;
 
bubbles:Boolean (default = false) — Indicates whether an event is a bubbling event.This event does not bubble.
 
cancelable:Boolean (default = false) — Indicates whether the behavior associated with the event can be prevented.
 
selectionState:SelectionState (default = null) — An object of type ElementRange that describes the range of text selected.
Constant Detail

SELECTION_CHANGE

Constant
public static const SELECTION_CHANGE:String = "selectionChange"

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

The SelectionEvent.SELECTION_CHANGE constant defines the value of the type property of the event object for a selection event.

SelectionEvent_example.as

This example shows how to listen for changes to the selection of text in a text flow. The two key steps are to call the addEventListener() method on the text flow and to create an event handler function.

The call to addEventListener() is made on the TextFlow instance. You can use the simple string "selectionChange", but it is safer to use the static constant SelectionEvent.SELECTION_CHANGE.

The event handler function in this example is named selectionHandler(). The selectionHandler() method uses the trace() function to produce trace statements that indicate the starting and ending points for the range of text. This information is accessible through the event object's selectedElementRange property.

package flashx.textLayout.events.examples {
    import flash.display.Sprite;
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.edit.ElementRange;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.elements.ParagraphElement;
    import flashx.textLayout.elements.SpanElement;
    import flashx.textLayout.edit.SelectionManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.events.SelectionEvent;

    public class SelectionEvent_example extends Sprite
    {
        private var tf:TextFlow;
        private var sm:SelectionManager;
        
        public function SelectionEvent_example()
        {
            //define TextFlow and manager objects
            tf = new TextFlow();
            sm = new SelectionManager();
            tf.interactionManager = sm;
            
            //define elements to contain text
            var p:ParagraphElement = new ParagraphElement();
            var s:SpanElement = new SpanElement();
            s.text ="This is sample text for the SelectionEvent example.";
                  
            //add the elements to the TextFlow
            p.addChild(s);  // add span as child of paragraph
            tf.addChild(p);  // add paragraph to text flow   
                    
            //compose TextFlow to display
            tf.flowComposer.addController(new ContainerController(this,600,400));
            tf.flowComposer.updateAllControllers();
            
            //add event handler to listen for SelectionEvent
            tf.addEventListener(SelectionEvent.SELECTION_CHANGE, selectionHandler);
    
        }
        private function selectionHandler(ev:SelectionEvent):void{
            trace("Selection event detected.");
            
            // Find selected element range
            var range:ElementRange = ev.selectionState ?  
                ElementRange.createElementRange(ev.selectionState.textFlow,
                ev.selectionState.absoluteStart, ev.selectionState.absoluteEnd) : null;

            trace("Starting index of selection range: " + range.absoluteStart);
            trace("Ending index of selection range: " + range.absoluteEnd);
        }
       
    }        
}