flashx.textLayout.events

# FlowElementMouseEvent - AS3

Package | flashx.textLayout.events
Class | public class FlowElementMouseEvent
Inheritance | FlowElementMouseEvent Event Object

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The Text Layout Framework includes this special version of mouse events because mouse events are generally unwanted when a flow element is embedded in an editable text flow, and because link elements are not in the display list (they are not DisplayObjects).

You can add an event listener to a link element to listen for this type of event. If you choose to cancel the event by calling `Event.preventDefault()`, the default behavior associated with the event will not occur.

If you choose not to add an event listener to the link element, or your event listener function does not cancel the behavior, the event is again dispatched, but this time by the link element's associated TextFlow instance rather than by the link element itself. This provides a second opportunity to listen for this event with an event listener attached to the TextFlow.

FlowElementMouseEvents are dispatched only when the text cannot be edited or when the control key is pressed concurrently with the mouse activity.

The following six event types are dispatched only when the text cannot be edited or when the control key is pressed:

- `FlowElementMouseEvent.CLICK`
- `FlowElementMouseEvent.MOUSE_DOWN`
- `FlowElementMouseEvent.MOUSE_UP`
- `FlowElementMouseEvent.MOUSE_MOVE`
- `FlowElementMouseEvent.ROLL_OVER`
- `FlowElementMouseEvent.ROLL_OUT`

View the examples

Related API Elements

flashx.textLayout.elements.LinkElement
flash.events.MouseEvent

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
|  | flowElement : FlowElement The FlowElement that dispatched the event. | FlowElementMouseEvent
|  | originalEvent : MouseEvent The original mouse event generated by the mouse activity. | FlowElementMouseEvent
|  | 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
--- | --- | ---
|  | FlowElementMouseEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = true, flowElement:FlowElement = null, originalEvent:MouseEvent = null) Creates an event object that contains information about mouse activity. | FlowElementMouseEvent
|  | 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
--- | --- | ---
|  | CLICK : String = "click" [static] Defines the value of the type property of a click event object. | FlowElementMouseEvent
|  | MOUSE_DOWN : String = "mouseDown" [static] Defines the value of the type property of a mouseDown event object. | FlowElementMouseEvent
|  | MOUSE_MOVE : String = "mouseMove" [static] Defines the value of the type property of a mouseMove event object. | FlowElementMouseEvent
|  | MOUSE_UP : String = "mouseUp" [static] Defines the value of the type property of a mouseUp event object. | FlowElementMouseEvent
|  | ROLL_OUT : String = "rollOut" [static] Defines the value of the type property of a rollOut event object. | FlowElementMouseEvent
|  | ROLL_OVER : String = "rollOver" [static] Defines the value of the type property of a rollOver event object. | FlowElementMouseEvent

Property Detail

### flowElement

property

`flowElement:FlowElement`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The FlowElement that dispatched the event.

Implementation
`public function get flowElement():FlowElement`
`public function set flowElement(value:FlowElement):void`

Related API Elements

flashx.textLayout.elements.FlowElement

### originalEvent

property

`originalEvent:MouseEvent`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The original mouse event generated by the mouse activity. This property can contain any of the following values:

- `MouseEvent.CLICK`
- `MouseEvent.MOUSE_DOWN`
- `MouseEvent.MOUSE_UP`
- `MouseEvent.MOUSE_MOVE`
- `MouseEvent.MOUSE_OVER`
- `MouseEvent.MOUSE_OUT`

In most cases the original event matches the event that the link element dispatches. The events match for the `click`, `mouseDown`, `mouseOut`, and `mouseOver` events. There are two cases, however, in which the original event is converted by the link element to a related event. If a link element detects a `mouseOver` event, it dispatches a `rollOver` event. Likewise, if a link element detects a `mouseOut` event, it dispatches a `rollOut` event. Usually, the event target and the mouse coordinates are related to the TextLine instance containing the link element.

Implementation
`public function get originalEvent():MouseEvent`
`public function set originalEvent(value:MouseEvent):void`

Related API Elements

flash.events.MouseEvent
Constructor Detail

### FlowElementMouseEvent

()
Constructor

`public function FlowElementMouseEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = true, flowElement:FlowElement = null, originalEvent:MouseEvent = null)`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Creates an event object that contains information about mouse activity. Event objects are passed as parameters to event listeners. Use the constructor if you plan to manually dispatch an event. You do not need to use the constructor to listen for FlowElementMouseEvent objects generated by a FlowElement.

Parameters

| `type:String` — The type of the event. Event listeners can access this information through the inherited `type` property. There are six types: `FlowElementMouseEvent.CLICK`; `FlowElementMouseEvent.MOUSE_DOWN`; `FlowElementMouseEvent.MOUSE_MOVE`; `FlowElementMouseEvent.MOUSE_UP`; `FlowElementMouseEvent.ROLL_OVER`; and `FlowElementMouseEvent.ROLL_OUT`.
| `bubbles:Boolean` (default = `false`)`` — Determines whether the Event object participates in the bubbling phase of the event flow. FlowElementMouseEvent objects do not bubble.
| `cancelable:Boolean` (default = `true`)`` — Determines whether the Event object can be canceled. Event listeners can access this information through the inherited `cancelable` property. FlowElementMouseEvent objects can be cancelled. You can cancel the default behavior associated with this event by calling the `preventDefault()` method in your event listener.
| `flowElement:FlowElement` (default = `null`)`` — The instance of FlowElement, currently a LinkElement, associated with this event. Event listeners can access this information through the `flowElement` property.
| `originalEvent:MouseEvent` (default = `null`)`` — The original mouse event that occurred on the flowElement. Event listeners can access this information through the `originalEvent` property.

Constant Detail

### CLICK

Constant

`public static const CLICK:String = "click"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `click` event object.

Related API Elements

flash.events.MouseEvent.CLICK

### MOUSE_DOWN

Constant

`public static const MOUSE_DOWN:String = "mouseDown"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `mouseDown` event object.

Related API Elements

flash.events.MouseEvent.MOUSE_DOWN

### MOUSE_MOVE

Constant

`public static const MOUSE_MOVE:String = "mouseMove"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `mouseMove` event object.

Related API Elements

flash.events.MouseEvent.MOUSE_MOVE

### MOUSE_UP

Constant

`public static const MOUSE_UP:String = "mouseUp"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `mouseUp` event object.

Related API Elements

flash.events.MouseEvent.MOUSE_UP

### ROLL_OUT

Constant

`public static const ROLL_OUT:String = "rollOut"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `rollOut` event object.

Related API Elements

flash.events.MouseEvent.ROLL_OUT

### ROLL_OVER

Constant

`public static const ROLL_OVER:String = "rollOver"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `rollOver` event object.

Related API Elements

flash.events.MouseEvent.ROLL_OVER
Examples How to use this example
FlowElementMouseEvent_example.as

This example shows how to listen for mouse events that may occur on LinkElement instances. The two key steps are to call addEventListener() for each event type and to create an event handler function.

The call to `addEventListener()` is made to the LinkElement instance. You can use simple strings, such as `"click"` or `"mouseDown"`, but it is safer to use static constants. The example uses the constants from the MouseEvent class because there are no static constants in the FlowElementMouseEvent class.

This example contains only one event handler function because the code is the same for all events. Normally, the code that responds to each type of event will differ, in which case a separate event handler function for each call to `addEventListener()` may be a better option.

Copy

    package flashx.textLayout.events.examples {
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flashx.textLayout.container.ContainerController;
        import flashx.textLayout.elements.TextFlow;
        import flashx.textLayout.elements.ParagraphElement;
        import flashx.textLayout.elements.SpanElement;
        import flashx.textLayout.elements.LinkElement;
        import flashx.textLayout.events.FlowElementMouseEvent;
        import flashx.textLayout.formats.TextLayoutFormat;

        public class FlowElementMouseEvent_example extends Sprite
        {
            private var tf:TextFlow;

            public function FlowElementMouseEvent_example()
            {
                // define TextFlow
                tf = new TextFlow();

                // define link element
                var linkPar:ParagraphElement = new ParagraphElement();
                var linkEl:LinkElement = new LinkElement();
                linkEl.href = "http://www.adobe.com/go/flashplayer";
                linkEl.target = "_blank"; // when link is clicked, open a new browser window
                var span1:SpanElement = new SpanElement(); // for text associated with link
                span1.text = "Get Flash Player";
                linkEl.addChild(span1);

                // define paragraph element for name of events dispatched
                var textPar:ParagraphElement = new ParagraphElement();
                var span2:SpanElement = new SpanElement();
                span2.text ="Three most recent events:";

                // add span (text) and link elements to the TextFlow
                linkPar.addChild(linkEl);    // add LinkElement to first paragraph
                textPar.addChild(span2);     // add header text to second paragraph
                tf.addChild(linkPar);        // add paragraph with link to text flow
                tf.addChild(textPar);        // add paragraph for events to text flow

                // add event listeners for all six FlowElementMouseEvent types
                linkEl.addEventListener(FlowElementMouseEvent.CLICK, linkHandler);
                linkEl.addEventListener(FlowElementMouseEvent.MOUSE_DOWN, linkHandler);
                linkEl.addEventListener(FlowElementMouseEvent.MOUSE_MOVE, linkHandler);
                linkEl.addEventListener(FlowElementMouseEvent.MOUSE_UP, linkHandler);
                linkEl.addEventListener(FlowElementMouseEvent.ROLL_OVER, linkHandler);
                linkEl.addEventListener(FlowElementMouseEvent.ROLL_OUT, linkHandler);

                // create text container for link and event listing text
                var linkContainer:Sprite = new Sprite();
                linkContainer.x = 10;
                linkContainer.y = 10;
                var linkController:ContainerController = new ContainerController(linkContainer,200,80);
                var linkControllerFormat:TextLayoutFormat = new TextLayoutFormat();
                linkControllerFormat.paddingTop = 3;
                linkController.format = linkControllerFormat;
                tf.flowComposer.addController(linkController);

                // Add linkContainer to Display List
                addChild(linkContainer);

                tf.flowComposer.updateAllControllers();
            }

            // event handler function
            private function linkHandler(ev:FlowElementMouseEvent):void {
                var par:ParagraphElement = new ParagraphElement();
                var span:SpanElement = new SpanElement();
                span.text = ev.type;
                par.addChild(span);
                tf.replaceChildren(2,2,par);
                if (tf.numChildren > 5) {
                    tf.removeChildAt(5);
                }
                tf.flowComposer.updateAllControllers();
            }

        }
    }

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