flashx.textLayout.events

# FlowOperationEvent - AS3

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

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

and again just after an operation completes. Although the event object dispatched in both cases is an instance of FlowOperationEvent, the events dispatched before and after an operation differ in significant ways.

Before any operation is carried out, a TextFlow object dispatches a FlowOperationEvent with its `type` property set to `FlowOperationEvent.FLOW_OPERATION_BEGIN.` You can determine what type of operation is about to commence by checking the `operation` property. Events of type FLOW_OPERATION_BEGIN are cancellable, which means that if you decide that the operation should not proceed, you can call `Event.PreventDefault()` to cancel the operation. If you cancel the operation, the operation is not performed and the FLOW_OPERATION_END event is not dispatched. You may also choose to call back into the EditManager to do another operation before the operation that triggered the event is done. If you do this, the operations you initiate in your event handler will be undone as a single operation with the operation that triggered the event.

If you allow the operation to proceed, TextFlow will dispatch a FlowOperationEvent upon completion of the operation with its `type` property set to `FlowOperationEvent.FLOW_OPERATION_END`. This event is dispatched before Flash Player throws any errors that may have occurred as a result of the operation. This gives you an opportunity to process the error before Flash Player throws the error. You can access the error through the event's `error` property. If you choose to handle the error in your event handler, you can prevent Flash Player from throwing the error by cancelling the FLOW_OPERATION_END event by calling `Event.preventDefault()`. You may also choose to call back into the EditManager to do some additional operations. If you do this, the operations that result will be undone as a unit with the operation that triggered the event.

View the examples

Related API Elements

flashx.textLayout.operations.FlowOperation

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
|  | error : Error The error thrown, if any, during an operation. | FlowOperationEvent
|  | eventPhase : uint [read-only] The current phase in the event flow. | Event
|  | level : int Operations may be merged into composite operations through nesting. | FlowOperationEvent
|  | operation : FlowOperation The operation that is about to begin or has just ended. | FlowOperationEvent
|  | 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
--- | --- | ---
|  | FlowOperationEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, operation:FlowOperation = null, level:int = 0, error:Error = null) Creates an event object that contains information about a flow operation. | FlowOperationEvent
|  | 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
--- | --- | ---
|  | FLOW_OPERATION_BEGIN : String = "flowOperationBegin" [static] Defines the value of the type property of a flowOperationBegin event object. | FlowOperationEvent
|  | FLOW_OPERATION_COMPLETE : String = "flowOperationComplete" [static] Defines the value of the type property of a flowOperationComplete event object. | FlowOperationEvent
|  | FLOW_OPERATION_END : String = "flowOperationEnd" [static] Defines the value of the type property of a flowOperationEnd event object. | FlowOperationEvent

Property Detail

### error

property

`error:Error`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The error thrown, if any, during an operation. If an error occurs during an operation, a reference to the error object is attached to the FLOW_OPERATION_END event. This give you the opportunity to deal with the error before Flash Player throws the error. If you cancel the event, Flash Player will not throw the error.

Implementation
`public function get error():Error`
`public function set error(value:Error):void`

### level

property

`level:int`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Operations may be merged into composite operations through nesting. This flag describes the nesting level of the operation.

Implementation
`public function get level():int`
`public function set level(value:int):void`

### operation

property

`operation:FlowOperation`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

The operation that is about to begin or has just ended.

Implementation
`public function get operation():FlowOperation`
`public function set operation(value:FlowOperation):void`

Related API Elements

flashx.textLayout.operations.FlowOperation
Constructor Detail

### FlowOperationEvent

()
Constructor

`public function FlowOperationEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, operation:FlowOperation = null, level:int = 0, error:Error = 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 are two types: `FlowOperationEvent.FLOW_OPERATION_BEGIN`; `FlowOperationEvent.FLOW_OPERATION_END`.
| `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. This event can be cancelled by calling the `Event.preventDefault()` method in your event handler function.
| `operation:FlowOperation` (default = `null`)`` — The FlowOperation that is about to commence or that has just ended.
| `level:int` (default = `0`)`` — Any Error generating during the operation.
| `error:Error` (default = `null`)``

Constant Detail

### FLOW_OPERATION_BEGIN

Constant

`public static const FLOW_OPERATION_BEGIN:String = "flowOperationBegin"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `flowOperationBegin` event object. Dispatched before an operation is executed. Cancelling this event blocks the operation.

### FLOW_OPERATION_COMPLETE

Constant

`public static const FLOW_OPERATION_COMPLETE:String = "flowOperationComplete"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `flowOperationComplete` event object. Dispatched after all operations including pending and composite operations are completed, composition is finished and the display is scrolled.

### FLOW_OPERATION_END

Constant

`public static const FLOW_OPERATION_END:String = "flowOperationEnd"`

Language Version: | ActionScript 3.0

Runtime Versions: | Flash Player 10, AIR 1.5

Defines the value of the `type` property of a `flowOperationEnd` event object. Dispatched after an operation completes. Any errors are stored in `OperationEvent.error`. If there is an error, cancelling this event blocks the rethrow of the error. Generally speaking all errors are likely to be fatal.

Changing an operation at this time (after it has been executed) may fail.

Examples How to use this example
FlowOperationEvent_example.as

This example shows how to create an event handler that listens for the beginning and end of a text flow operation. 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 `"flowOperationBegin"` or `"flowOperationEnd"`, but it is safer to use the static constant `FlowOperationEvent.FLOW_OPERATION_BEGIN` or `FlowOperationEvent.FLOW_OPERATION_END`, respectively.

The event handler functions in this example are named `opBeginHandler()` and `opEndHandler()`. The `opBeginHandler()` method uses the `trace()` function to produce a trace statement that indicates that a paste operation has started. The `opEndHandler()` method also uses the `trace()` function, but produces a trace statement only if an error occurs.

Copy

    package flashx.textLayout.events.examples
    {
        import flash.display.Sprite;

        import flashx.textLayout.compose.StandardFlowComposer;
        import flashx.textLayout.container.ContainerController;
        import flashx.textLayout.conversion.TextConverter;
        import flashx.textLayout.edit.EditManager;
        import flashx.textLayout.elements.TextFlow;
        import flashx.textLayout.events.FlowOperationEvent;
        import flashx.textLayout.operations.FlowOperation;
        import flashx.textLayout.operations.PasteOperation;
        import flashx.undo.UndoManager;

        public class FlowOperationEvent_example extends Sprite
        {
            private var inputContainer:Sprite;
            private var inputTextFlow:TextFlow;
            private var inputController:ContainerController;
            private var inputEditManager:EditManager;
            private var inputUndoManager:UndoManager;

            public function FlowOperationEvent_example()
            {
                var replaceText:String = "paste text here";
                inputTextFlow = new TextFlow();

                inputContainer = new Sprite();
                inputContainer.x = 30;
                inputContainer.y = 100;

                 this.stage.addChild( inputContainer );

                inputController = new ContainerController(inputContainer, 225, 20);
                inputController.verticalScrollPolicy = flashx.textLayout.container.ScrollPolicy.OFF;

                inputTextFlow = TextConverter.importToFlow(replaceText, TextConverter.PLAIN_TEXT_FORMAT);
                inputTextFlow.flowComposer = new StandardFlowComposer();
                inputTextFlow.flowComposer.addController(inputController);

                inputUndoManager = new UndoManager();
                inputEditManager = new EditManager(inputUndoManager);
                inputTextFlow.interactionManager = inputEditManager;

                inputTextFlow.addEventListener(FlowOperationEvent.FLOW_OPERATION_BEGIN, opBeginHandler);
                inputTextFlow.addEventListener(FlowOperationEvent.FLOW_OPERATION_END, opEndHandler);
                inputTextFlow.flowComposer.updateAllControllers();
            }

            private function opBeginHandler(evt:FlowOperationEvent):void {
                var flowOp:FlowOperation = evt.operation;
                if(flowOp is PasteOperation) {
                    trace("You can cancel or modify the paste operation in this event handler.");
                }
            }

            private function opEndHandler(evt:FlowOperationEvent):void {
                var flowOp:FlowOperation = evt.operation;
                if(evt.error) {
                    trace("You can handle the error here and call preventDefault().");
                }
            }
        }
    }

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