flashx.textLayout.events

# SelectionEvent - AS3

Package | flashx.textLayout.events
Class | public class SelectionEvent
Inheritance | SelectionEvent Event 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
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | bubbles : Boolean [read-only] Indicates whether an event is a bubbling event. | Event
|  | cancelable : Boolean [read-only] Indicates whether the behavior associated with the event can be prevented. | Event
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | currentTarget : Object [read-only] The object that is actively processing the Event object with an event listener. | Event
|  | eventPhase : 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
|  | target : Object [read-only] The event target. | Event
|  | type : String [read-only] The type of event. | Event

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined 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
|  | clone():Event Duplicates an instance of an Event subclass. | Event
|  | formatToString(className:String, ... arguments):String A utility function for implementing the toString() method in custom ActionScript 3.0 Event classes. | Event
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | isDefaultPrevented():Boolean Checks whether the preventDefault() method has been called on the event. | Event
|  | 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
|  | preventDefault():void Cancels an event's default behavior if that behavior can be canceled. | Event
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | stopImmediatePropagation():void Prevents processing of any event listeners in the current node and any subsequent nodes in the event flow. | Event
|  | stopPropagation():void Prevents processing of any event listeners in nodes subsequent to the current node in the event flow. | Event
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns a string containing all the properties of the Event object. | Event
|  | valueOf():Object Returns the primitive value of the specified object. | Object

Public Constants
Hide Inherited Public Constants
Show Inherited Public Constants

| Constant | Defined 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):

Copy

             // 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

flashx.textLayout.edit.ElementRange
flashx.textLayout.edit.SelectionState
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.

Examples How to use this example
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.

Copy

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

        }
    }

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