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 

FlowElementMouseEvent  - AS3

Packageflashx.textLayout.events
Classpublic class FlowElementMouseEvent
InheritanceFlowElementMouseEvent Inheritance Event Inheritance Object

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

A link element dispatches this event when it detects mouse activity. 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



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
  flowElement : FlowElement
The FlowElement that dispatched the event.
FlowElementMouseEvent
  originalEvent : MouseEvent
The original mouse event generated by the mouse activity.
FlowElementMouseEvent
 Inheritedtarget : Object
[read-only] The event target.
Event
 Inheritedtype : String
[read-only] The type of event.
Event
Public Methods
 MethodDefined 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
 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
  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

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

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

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

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

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

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

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

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.

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

    }        
}