Adobe® Flex® 4 Language Reference
Hide Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
flashx.textLayout.edit 
EditManager 
Packageflashx.textLayout.edit
Classpublic class EditManager
InheritanceEditManager Inheritance SelectionManager Inheritance Object
Implements IEditManager

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

The EditManager class manages editing changes to a TextFlow.

To enable text flow editing, assign an EditManager object to the interactionManager property of the TextFlow object. The edit manager handles changes to the text (such as insertions, deletions, and format changes). Changes are reversible if the edit manager has an undo manager. The edit manager triggers the recomposition and display of the text flow, as necessary.

The EditManager class supports the following keyboard shortcuts:

KeysResult
ctrl-zundo
ctrl-yredo
ctrl-backspacedeletePreviousWord
ctrl-deletedeleteNextWord
alt+deletedeleteNextWord
ctrl+alt-deletedeleteNextWord
ctrl-shift-hypheninsert discretionary hyphen
ctrl+backspacedeletePreviousWord
alt+backspacedeletePreviousWord
ctrl+alt-backspacedeletePreviousWord
INSERTtoggles overWriteMode
backspacedeletePreviousCharacter
ENTERif textFlow.configuration.manageEnterKey splitParagraph
TABif textFlow.configuration.manageTabKey insert a TAB or overwrite next character with a TAB

Note: The following keys do not work on Windows: alt-backspace, alt-delete, ctrl+alt-backspace, and ctrl+alt-delete. These keys do not generate an event for the runtime.

View the examples

See also



Public Properties
 PropertyDefined By
 InheritedabsoluteEnd : int
[read-only] The text position of the end of the selection, as an offset from the start of the text flow.
SelectionManager
 InheritedabsoluteStart : int
[read-only] The text position of the start of the selection, as an offset from the start of the text flow.
SelectionManager
 InheritedactivePosition : int
[read-only] The active point of the selection.
SelectionManager
 InheritedanchorPosition : int
[read-only] The anchor point of the selection.
SelectionManager
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 InheritedcurrentSelectionFormat : SelectionFormat
[read-only] The current SelectionFormat object.
SelectionManager
 InheritededitingMode : String
[read-only] The editing mode.
SelectionManager
 Inheritedfocused : Boolean
[read-only] Indicates whether a container in the text flow has the focus.
SelectionManager
 InheritedfocusedSelectionFormat : SelectionFormat
The SelectionFormat object used to draw the selection in a focused container.
SelectionManager
 InheritedinactiveSelectionFormat : SelectionFormat
The SelectionFormat object used to draw the selection when it is not in the active window.
SelectionManager
  overwriteMode : Boolean = false
[static] Indicates whether overwrite mode is on or off.
EditManager
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
 InheritedtextFlow : flashx.textLayout.elements:TextFlow
The TextFlow object managed by this selection manager.
SelectionManager
  undoManager : IUndoManager
[read-only] The IUndoManager assigned to this edit manager.
EditManager
 InheritedunfocusedSelectionFormat : SelectionFormat
The SelectionFormat object used to draw the selection when it is not in a focused container, but is in the active window.
SelectionManager
 InheritedwindowActive : Boolean
[read-only] Indicates whether the window associated with the text flow is active.
SelectionManager
Protected Properties
 PropertyDefined By
 InheritedpointFormat : flashx.textLayout.formats:ITextLayoutFormat
[read-only] The format that will be applied to inserted text.
SelectionManager
Public Methods
 MethodDefined By
  
EditManager(undoManager:IUndoManager = null)
Creates an EditManager object.
EditManager
 Inherited
Processes an activate event.
SelectionManager
  
Applies container styles to any containers in the selection.
EditManager
  
Changes the formats of the specified (or current) selection.
EditManager
  
Applies styles to the specified element.
EditManager
  
Changes the format applied to the leaf elements in the specified (or current) selection.
EditManager
  
applyLink(href:String, targetString:String = null, extendToLinkBoundary:Boolean = false, operationState:SelectionState = null):void
Transforms a selection into a link, or a link into normal text.
EditManager
  
Applies paragraph styles to any paragraphs in the selection.
EditManager
  
applyTCY(tcyOn:Boolean, operationState:SelectionState = null):void
Transforms text into a TCY run, or a TCY run into non-TCY text.
EditManager
  
Begins a new group of operations.
EditManager
  
changeElementID(newID:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
Changes the ID of an element.
EditManager
  
changeStyleName(newName:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
Changes the styleName of an element or part of an element.
EditManager
  
Undefines formats of the specified (or current) selection.
EditManager
  
Undefines styles to the specified element.
EditManager
  
Deletes the selected area and returns the deleted area in a TextScrap object.
EditManager
 Inherited
Processes a deactivate event.
SelectionManager
  
deleteNextCharacter(operationState:SelectionState = null):void
Deletes a range of text, or, if a point selection is given, deletes the next character.
EditManager
  
deleteNextWord(operationState:SelectionState = null):void
Deletes the next word.
EditManager
  
Deletes a range of text, or, if a point selection is given, deletes the previous character.
EditManager
  
deletePreviousWord(operationState:SelectionState = null):void
Deletes the previous word.
EditManager
  
deleteText(operationState:SelectionState = null):void
Deletes a range of text.
EditManager
  
[override] Executes a FlowOperation.
EditManager
  
[override]
EditManager
  
Ends a group of operations.
EditManager
 Inherited
SelectionManager
 Inherited
Processes a focusChange event.
SelectionManager
 Inherited
Processes a focusIn event.
SelectionManager
 Inherited
Processes a focusOut event.
SelectionManager
 Inherited
Gets the character format attributes that are common to all characters in the specified text range or current selection.
SelectionManager
 Inherited
Gets the container format attributes that are common to all containers in the specified text range or current selection.
SelectionManager
 Inherited
Gets the paragraph format attributes that are common to all paragraphs in the specified text range or current selection.
SelectionManager
 Inherited
Gets the SelectionState object of the current selection.
SelectionManager
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether there is a selection.
SelectionManager
 Inherited
Processes an imeStartComposition event
SelectionManager
  
insertInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):void
Inserts an image.
EditManager
  
insertText(text:String, origOperationState:SelectionState = null):void
Inserts text.
EditManager
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the selection covers a range of text.
SelectionManager
 Inherited
Processes a keyDown event.
SelectionManager
 Inherited
Processes a keyFocusChange event.
SelectionManager
 Inherited
Processes a keyUp event.
SelectionManager
 Inherited
Processes a menuSelect event.
SelectionManager
  
modifyInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):void
Modifies an existing inline graphic.
EditManager
 Inherited
Processes a mouseDoubleClick event.
SelectionManager
 Inherited
Processes a mouseDown event.
SelectionManager
 Inherited
Processes a mouseMove event.
SelectionManager
 Inherited
Processes a mouseOut event.
SelectionManager
 Inherited
Processes a mouseOver event.
SelectionManager
 Inherited
Processes a mouseUp event.
SelectionManager
 Inherited
Processes a mouseWheel event.
SelectionManager
 Inherited
notifyInsertOrDelete(absolutePosition:int, length:int):void
Updates the selection manager when text is inserted or deleted.
SelectionManager
  
overwriteText(text:String, operationState:SelectionState = null):void
Overwrites the selected text.
EditManager
  
Pastes the TextScrap into the selected area.
EditManager
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
  
Reperforms the previous undone operation.
EditManager
 Inherited
Redisplays the selection shapes.
SelectionManager
 Inherited
SelectionManager
 Inherited
selectRange(anchorPosition:int, activePosition:int):void
SelectionManager
 Inherited
Gives the focus to the first container in the selection.
SelectionManager
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Sets the SelectionState object of the current selection.
SelectionManager
  
splitParagraph(operationState:SelectionState = null):void
Splits the paragraph at the current position.
EditManager
 Inherited
Processes a TextEvent.
SelectionManager
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
  
Reverses the previous operation.
EditManager
 Inherited
Returns the primitive value of the specified object.
Object
Protected Methods
 MethodDefined By
  
Update the display after an operation has modified it
EditManager
Property Detail

overwriteMode

property
public static var overwriteMode:Boolean = false

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

Indicates whether overwrite mode is on or off.

If true, then a keystroke overwrites the character following the cursor. If false, then a keystroke is inserted at the cursor location.

undoManager

property 
undoManager:IUndoManager  [read-only]

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

The IUndoManager assigned to this edit manager.

To allow edits to be undone (and redone), pass an IUndoManager instance to the EditManager constructor. The undo manager maintains a stack of operations that have been executed, and it can undo or redo individual operations.

Note: If the TextFlow is modified directly (not via calls to the EditManager, but directly via calls to the managed FlowElement objects), then the EditManager clears the undo stack to prevent the stack from getting out of sync with the current state.



Implementation
    public function get undoManager():IUndoManager
Constructor Detail

EditManager

()Constructor
public function EditManager(undoManager:IUndoManager = null)

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

Creates an EditManager object.

Assign an EditManager object to the interactionManager property of a text flow to enable editing of that text flow.

To enable support for undoing and redoing changes, pass an IUndoManager instance to the EditManager constructor. You can use the flashx.undo.UndoManager class or create a custom IUndoManager instance. Use a custom IUndoManager instance to integrate Text Layout Framework changes with an existing undo manager that is not an instance of the UndoManager class. To create a custom IUndoManager instance, ensure that the class you use to define the undo manager implements the IUndoManager interface.

Parameters
undoManager:IUndoManager (default = null) — The UndoManager for the application

See also


Example  ( How to use this example )

The following example creates an EditManager object for a text flow:
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_constructor
    {
        // Create a new TextFlow that is editable and undoable.
        static public function createEditableTextFlow():TextFlow
        {
             var textFlow:TextFlow = new TextFlow();
             textFlow.interactionManager = new EditManager( new UndoManager() );
             return textFlow;
        }
    }
}

Method Detail

applyContainerFormat

()method
public function applyContainerFormat(containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void

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

Applies container styles to any containers in the selection.

Any style properties in the format object that are null are left unchanged.

Parameters

containerFormat:flashx.textLayout.formats:ITextLayoutFormat — the format to apply to the containers in the range
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example changes the format of the containers holding a selection to display two columns:
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.formats.TextLayoutFormat;
    
    public class EditManager_applyContainerFormat
    {
        public function EditManager_applyContainerFormat( selection:SelectionState ):void
         {
             var textFlow:TextFlow = selection.textFlow;
             var editManager:IEditManager = textFlow.interactionManager as IEditManager;
             
             var containerStyle:TextLayoutFormat = new TextLayoutFormat();
             containerStyle.columnCount = 2;
             
             editManager.applyContainerFormat( containerStyle );
         }    
    }
}

applyFormat

()method 
public function applyFormat(leafFormat:flashx.textLayout.formats:ITextLayoutFormat, paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void

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

Changes the formats of the specified (or current) selection.

Executes an undoable operation that applies the new formats. Only style attributes set for the TextLayoutFormat objects are applied. Undefined attributes in the format objects are not changed.

Parameters

leafFormat:flashx.textLayout.formats:ITextLayoutFormat — the format to apply to leaf elements such as spans and inline graphics
 
paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat — format to apply to paragraph elements
 
containerFormat:flashx.textLayout.formats:ITextLayoutFormat — format to apply to the containers
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example applies a container, paragraph, and a character format to a selection.
 
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.formats.TextAlign;
    import flashx.textLayout.formats.TextLayoutFormat;
    
    public class EditManager_applyFormat
    {
        public function EditManager_applyFormat( selection:SelectionState ):void
        {
            var textFlow:TextFlow = selection.textFlow;
            var editManager:IEditManager = textFlow.interactionManager as IEditManager;
         
            var containerStyle:TextLayoutFormat = new TextLayoutFormat();
            containerStyle.columnCount = 2;
            
            var paraStyle:TextLayoutFormat = new TextLayoutFormat();
            paraStyle.textAlign = TextAlign.JUSTIFY;
            
            var charStyle:TextLayoutFormat = new TextLayoutFormat();
            charStyle.color = 0xff0000;
            
            editManager.applyFormat( charStyle, paraStyle, containerStyle );    
        }
    }
}

applyFormatToElement

()method 
public function applyFormatToElement(targetElement:FlowElement, format:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void

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

Applies styles to the specified element.

Any style properties in the format object that are null are left unchanged. Only styles that are relevant to the specified element are applied.

Parameters

targetElement:FlowElement — the element to which the styles are applied.
 
format:flashx.textLayout.formats:ITextLayoutFormat — the format containing the styles to apply
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.

applyLeafFormat

()method 
public function applyLeafFormat(characterFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void

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

Changes the format applied to the leaf elements in the specified (or current) selection.

Executes an undoable operation that applies the new format to leaf elements such as SpanElement and InlineGraphicElement objects. Only style attributes set for the TextLayoutFormat objects are applied. Undefined attributes in the format object are changed.

Parameters

characterFormat:flashx.textLayout.formats:ITextLayoutFormat — the format to apply.
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example changes the color of text in a selection to red.
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.formats.TextLayoutFormat;
    
    public class EditManager_applyLeafFormat
    {
        public function EditManager_applyLeafFormat(selection:SelectionState)
        {
             var textFlow:TextFlow = selection.textFlow;
             var editManager:IEditManager = textFlow.interactionManager as IEditManager;
        
             var charStyle:TextLayoutFormat = new TextLayoutFormat();
             charStyle.color = 0xff0000;
             
             editManager.applyLeafFormat( charStyle );    
        }
    }
}

applyLink

()method 
public function applyLink(href:String, targetString:String = null, extendToLinkBoundary:Boolean = false, operationState:SelectionState = null):void

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

Transforms a selection into a link, or a link into normal text.

Executes an undoable operation that creates or removes the link.

If a target parameter is specified, it must be one of the following values:

  • "_self"
  • "_blank"
  • "_parent"
  • "_top"

In browser-hosted runtimes, a target of "_self" replaces the current html page. So, if the SWF content containing the link is in a page within a frame or frameset, the linked content loads within that frame. If the page is at the top level, the linked content opens to replace the original page. A target of "_blank" opens a new browser window with no name. A target of "_parent" replaces the parent of the html page containing the SWF content. A target of "_top" replaces the top-level page in the current browser window.

In other runtimes, such as Adobe AIR, the link opens in the user's default browser and the target parameter is ignored.

The extendToLinkBoundary parameter determines how the edit manager treats a selection that intersects with one or more existing links. If the parameter is true, then the operation is applied as a unit to the selection and the whole text of the existing links. Thus, a single link is created that spans from the beginning of the first link intersected to the end of the last link intersected. In contrast, if extendToLinkBoundary were false in this situation, the existing partially selected links would be split into two links.

Parameters

href:String — The uri referenced by the link.
 
targetString:String (default = null) — The target browser window of the link.
 
extendToLinkBoundary:Boolean (default = false) — Specifies whether to consolidate selection with any overlapping existing links, and then apply the change.
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example defines two functions. The first transforms a selection into a link. The second removes the URL from a link.
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_applyLink
    {
        
        static public function makeLink( selection:SelectionState ):void
         {
             var textFlow:TextFlow = selection.textFlow;
             var editManager:IEditManager = textFlow.interactionManager as IEditManager;
                 
             editManager.applyLink( "http://www.adobe.com" );
         }
         
        static public function removeLink( selection:SelectionState ):void
         {
            var textFlow:TextFlow = selection.textFlow;
            var editManager:IEditManager = textFlow.interactionManager as IEditManager;
            
            editManager.applyLink( null, null, true );    
         }
    }
}

applyParagraphFormat

()method 
public function applyParagraphFormat(paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void

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

Applies paragraph styles to any paragraphs in the selection.

Any style properties in the format object that are null are left unchanged.

Parameters

paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat — the format to apply to the selected paragraphs.
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example defines a function to change the format of any paragraphs included in a current selection to justify the text.
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.formats.TextAlign;
    import flashx.textLayout.formats.TextLayoutFormat;
    
    public class EditManager_applyParagraphFormat
    {
        static public function justifyParagraph( selection:SelectionState ):void
         {
            var textFlow:TextFlow = selection.textFlow;
            var editManager:IEditManager = textFlow.interactionManager as IEditManager;
         
             var paraStyle:TextLayoutFormat = new TextLayoutFormat();
             paraStyle.textAlign = TextAlign.JUSTIFY;
         
             editManager.applyParagraphFormat( paraStyle );    
         }
    }
}

applyTCY

()method 
public function applyTCY(tcyOn:Boolean, operationState:SelectionState = null):void

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

Transforms text into a TCY run, or a TCY run into non-TCY text.

TCY, or tate-chu-yoko, causes text to draw horizontally within a vertical line, and is used to make small blocks of non-Japanese text or numbers, such as dates, more readable in vertical text.

Parameters

tcyOn:Boolean — specify true to apply TCY to a text range, false to remove TCY.
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example defines two functions. The first applies TCY formatting to the current selection. The second removes TCY formatting.
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_applyTCY
    {
        static public function tcyOn( selection:SelectionState ):void
         {
            var textFlow:TextFlow = selection.textFlow;
            var editManager:IEditManager = textFlow.interactionManager as IEditManager;
        
             editManager.applyTCY( true );
         }
         
        static public function tcyOff( selection:SelectionState ):void
         {
        
            var textFlow:TextFlow = selection.textFlow;
            var editManager:IEditManager = textFlow.interactionManager as IEditManager;
        
             editManager.applyTCY( false );    
         }
    }
}

beginCompositeOperation

()method 
public function beginCompositeOperation():void

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

Begins a new group of operations.

All operations executed after the call to beginCompositeOperation(), and before the matching call to endCompositeOperation() are executed and grouped together as a single operation that can be undone as a unit.

A beginCompositeOperation/endCompositeOperation block can be nested inside another beginCompositeOperation/endCompositeOperation block.


Example  ( How to use this example )

The following example defines a function that inserts a graphic object in its own paragraph. If the beginCompositeOperation() and endCompositeOperation() functions were not used, then each of the suboperations would have to be undone separately rather than as a group.
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_beginCompositeOperation
    {
        static public function insertGraphic( source:Object, width:Object, height:Object, float:String, selection:SelectionState ):void
        {
            var editManager:IEditManager = selection.textFlow.interactionManager as IEditManager;
            
            editManager.beginCompositeOperation();
            
            editManager.deleteText( selection );
            var changedSelection:SelectionState = 
                new SelectionState( selection.textFlow, selection.anchorPosition, selection.anchorPosition );
            editManager.splitParagraph( changedSelection );
            changedSelection = 
                new SelectionState( changedSelection.textFlow, changedSelection.anchorPosition + 1, changedSelection.anchorPosition + 1);
            editManager.insertInlineGraphic( source, width, height, float, changedSelection );
            changedSelection = 
                new SelectionState( changedSelection.textFlow, changedSelection.anchorPosition + 1, changedSelection.anchorPosition + 1);
            editManager.splitParagraph( changedSelection );
            
            editManager.endCompositeOperation();                
        }
    }
}

beginIMEOperation

()method 
tlf_internal function beginIMEOperation():void

changeElementID

()method 
public function changeElementID(newID:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void

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

Changes the ID of an element.

If the relativeStart or relativeEnd parameters are set (to anything other than the default values), then the element is split. The parts of the element outside this range retain the original ID. Setting both the relativeStart and relativeEnd parameters creates elements with duplicate IDs.

Parameters

newID:String — the new ID value
 
targetElement:FlowElement — the element to modify
 
relativeStart:int (default = 0) — an offset from the beginning of the element at which to split the element when assigning the new ID
 
relativeEnd:int (default = -1) — an offset from the end of the element at which to split the element when assigning the new ID
 
operationState:SelectionState (default = null) — specifies the selection to restore when undoing this operation; if null, the operation saves the current selection.


Example  ( How to use this example )

The following example defines a function that changes the ID of the first paragraph in a selection:
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.ElementRange;
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_changeElementID
    {
        static public function changeParagraphID( id:String, selection:SelectionState ):void
         {
            var textFlow:TextFlow = selection.textFlow;
            var editManager:IEditManager = textFlow.interactionManager as IEditManager;
            var selectedRange:ElementRange = ElementRange.createElementRange( selection.textFlow, selection.absoluteStart, selection.absoluteEnd );            
        
            editManager.changeElementID( id, selectedRange.firstParagraph, 0, -1, selection );    
         }
    }
}

         

changeStyleName

()method 
public function changeStyleName(newName:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void

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

Changes the styleName of an element or part of an element.

If the relativeStart or relativeEnd parameters are set (to anything other than the default values), then the element is split. The parts of the element outside this range retain the original style.

Parameters

newName:String — the name of the new style.
 
targetElement:FlowElement — specifies the element to change.
 
relativeStart:int (default = 0) — an offset from the beginning of the element at which to split the element when assigning the new style
 
relativeEnd:int (default = -1) — an offset from the end of the element at which to split the element when assigning the new style
 
operationState:SelectionState (default = null) — specifies the selection to restore when undoing this operation; if null, the operation saves the current selection.


Example  ( How to use this example )

The following example defines a functions that changes the style name of the first paragraph in a selection:
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.ElementRange;
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_changeStyleName
    {
        static public function changeParagraphStyle( styleName:String, selection:SelectionState ):void
        {
            var textFlow:TextFlow = selection.textFlow;
            var editManager:IEditManager = textFlow.interactionManager as IEditManager;
            var selectedRange:ElementRange = ElementRange.createElementRange( selection.textFlow, selection.absoluteStart, selection.absoluteEnd );            
        
            editManager.changeElementID( styleName, selectedRange.firstParagraph, 0, -1, selection );    
        }
    }
}

clearFormat

()method 
public function clearFormat(leafFormat:flashx.textLayout.formats:ITextLayoutFormat, paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void

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

Undefines formats of the specified (or current) selection.

Executes an undoable operation that undefines the specified formats. Only style attributes set for the TextLayoutFormat objects are applied. Undefined attributes in the format objects are not changed.

Parameters

leafFormat:flashx.textLayout.formats:ITextLayoutFormat — The format whose set values indicate properties to undefine to LeafFlowElement objects in the selected range.
 
paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat — The format whose set values indicate properties to undefine to ParagraphElement objects in the selected range.
 
containerFormat:flashx.textLayout.formats:ITextLayoutFormat — The format whose set values indicate properties to undefine to ContainerController objects in the selected range.
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.

clearFormatOnElement

()method 
public function clearFormatOnElement(targetElement:FlowElement, format:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void

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

Undefines styles to the specified element.

Any style properties in the format object that are undefined are left unchanged. Any styles that are defined in the specififed format are undefined on the specified element.

Parameters

targetElement:FlowElement — the element to which the styles are applied.
 
format:flashx.textLayout.formats:ITextLayoutFormat — the format containing the styles to undefine
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.

cutTextScrap

()method 
public function cutTextScrap(operationState:SelectionState = null):flashx.textLayout.edit:TextScrap

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

Deletes the selected area and returns the deleted area in a TextScrap object.

The resulting TextScrap can be posted to the system clipboard or used in a subsequent pasteTextOperation() operation.

Parameters

operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.

Returns
flashx.textLayout.edit:TextScrap — the TextScrap that was cut

See also


Example  ( How to use this example )

The following example creates a selection in a text flow cuts the selected range and creates a TextScrap object containing the deleted content.
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.edit.TextScrap;
    import flashx.undo.UndoManager;
    import flashx.textLayout.elements.TextFlow;

    public class EditManager_cutTextScrap
    {
        static public function cutTextScrap():TextScrap
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How do now brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( new Sprite() ));
            var editManager:EditManager = new EditManager( new UndoManager() );
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 4, 7 );
            var scrap:TextScrap = editManager.cutTextScrap(); //Displays: How now brown cow.
            return scrap;
        }
    }
}

deleteNextCharacter

()method 
public function deleteNextCharacter(operationState:SelectionState = null):void

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

Deletes a range of text, or, if a point selection is given, deletes the next character.

Parameters

operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example creates a point selection in a text flow and deletes the next character.
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_deleteNextCharacter
    {
        static public function deleteNextCharacter():void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How now brown crow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( new Sprite() ));
            var editManager:EditManager = new EditManager();
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 15, 15 );
            editManager.deleteNextCharacter(); //displays: How now brown cow.
        }
    }
}

deleteNextWord

()method 
public function deleteNextWord(operationState:SelectionState = null):void

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

Deletes the next word.

If a range is selected, the first word of the range is deleted.

Parameters

operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example creates a point selection in a text flow and deletes the next word.
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_deleteNextWord
    {
        static public function deleteNextWord():void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How do now brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( new Sprite() ));
            var editManager:EditManager = new EditManager();
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 3, 3 );
            editManager.deleteNextWord(); //displays: How now brown cow.
        }
    }
}

deletePreviousCharacter

()method 
public function deletePreviousCharacter(operationState:SelectionState = null):void

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

Deletes a range of text, or, if a point selection is given, deletes the previous character.

Parameters

operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example creates a point selection in a text flow and deletes the previous character.
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_deletePreviousCharacter
    {
        
        static public function deletePreviousCharacter():void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How now brown crow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( new Sprite() ));
            var editManager:EditManager = new EditManager();
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 16, 16 );
            editManager.deletePreviousCharacter(); //displays: How now brown cow.
        }
    }
}

deletePreviousWord

()method 
public function deletePreviousWord(operationState:SelectionState = null):void

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

Deletes the previous word.

If a range is selected, the first word of the range is deleted.

Parameters

operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example creates a point selection in a text flow and deletes the previous word.
var textFlow:TextFlow = TextConverter.importToFlow( "How do now brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
textFlow.flowComposer = new StandardFlowComposer();
textFlow.flowComposer.addController( new ContainerController( this ));
var editManager:EditManager = new EditManager( new UndoManager() );
textFlow.interactionManager = editManager;
textFlow.flowComposer.updateAllControllers();

editManager.setSelection( 7, 7 );
editManager.deletePreviousWord(); //displays: How now brown cow.

deleteText

()method 
public function deleteText(operationState:SelectionState = null):void

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

Deletes a range of text.

Parameters

operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example creates a range selection in a text flow and deletes the selected characters.
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_deleteText
    {
        static public function deleteText():void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How do now brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( new Sprite() ));
            var editManager:EditManager = new EditManager();
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 4, 7 );
            editManager.deleteText(); //displays: How now brown cow.
        }
    }
}

doOperation

()method 
override public function doOperation(operation:FlowOperation):void

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

Executes a FlowOperation.

The doOperation() method is called by IEditManager functions that update the text flow. You do not typically need to call this function directly unless you create your own custom operations.

This function proceeds in the following steps:

  1. Flush any pending operations before performing this operation.
  2. Send a cancelable flowOperationBegin event. If canceled this method returns immediately.
  3. Execute the operation. The operation returns true or false. False indicates that no changes were made.
  4. Push the operation onto the undo stack.
  5. Clear the redo stack.
  6. Update the display.
  7. Send a cancelable flowOperationEnd event.

Exception handling: If the operation throws an exception, it is caught and the error is attached to the flowOperationEnd event. If the event is not canceled the error is rethrown.

Parameters

operation:FlowOperation — a FlowOperation object


Example  ( How to use this example )

The following example creates and executes an InsertTextOperation:
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.operations.InsertTextOperation;
    
    public class EditManager_doOperation
    {
        static public function doOperation(sprite:Sprite):void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( sprite ));
            var editManager:EditManager = new EditManager();
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            var selectionState:SelectionState = new SelectionState(textFlow, 4, 4);            
            var insertOperation:InsertTextOperation = new InsertTextOperation( selectionState, "now " );
            editManager.doOperation( insertOperation );        // displays: How now brown cow
        }
    }
}

editHandler

()method 
override public function editHandler(event:Event):void

Parameters

event:Event

endCompositeOperation

()method 
public function endCompositeOperation():void

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

Ends a group of operations.

All operations executed since the last call to beginCompositeOperation() are grouped as a CompositeOperation that is then completed. This CompositeOperation object is added to the undo stack or, if this composite operation is nested inside another composite operation, added to the parent operation.


Example  ( How to use this example )

The following example defines a function that inserts a graphic object in its own paragraph. If the beginCompositeOperation() and endCompositeOperation() functions were not used, then each of the suboperations would have to be undone separately rather than as a group.
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.edit.SelectionState;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_beginCompositeOperation
    {
        static public function insertGraphic( source:Object, width:Object, height:Object, float:String, selection:SelectionState ):void
        {
            var editManager:IEditManager = selection.textFlow.interactionManager as IEditManager;
            
            editManager.beginCompositeOperation();
            
            editManager.deleteText( selection );
            var changedSelection:SelectionState = 
                new SelectionState( selection.textFlow, selection.anchorPosition, selection.anchorPosition );
            editManager.splitParagraph( changedSelection );
            changedSelection = 
                new SelectionState( changedSelection.textFlow, changedSelection.anchorPosition + 1, changedSelection.anchorPosition + 1);
            editManager.insertInlineGraphic( source, width, height, float, changedSelection );
            changedSelection = 
                new SelectionState( changedSelection.textFlow, changedSelection.anchorPosition + 1, changedSelection.anchorPosition + 1);
            editManager.splitParagraph( changedSelection );
            
            editManager.endCompositeOperation();                
        }
    }
}

endIMEOperation

()method 
tlf_internal function endIMEOperation():void

endIMESession

()method 
tlf_internal function endIMESession():void

insertInlineGraphic

()method 
public function insertInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):void

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

Inserts an image.

The source of the image can be a string containing a URI, URLRequest object, a Class object representing an embedded asset, or a DisplayObject instance.

The width and height values can be the number of pixels, a percent, or the string, 'auto', in which case the actual dimension of the graphic is used.

Set the float to one of the constants defined in the Float class to specify whether the image should be displayed to the left or right of any text or inline with the text.

Parameters

source:Object — can be either a String interpreted as a uri, a Class interpreted as the class of an Embed DisplayObject, a DisplayObject instance or a URLRequest.
 
width:Object — width of the image to insert (number, percent, or 'auto')
 
height:Object — height of the image to insert (number, percent, or 'auto')
 
options:Object (default = null) — none supported.
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.

See also


Example  ( How to use this example )

The following example inserts a Shape object at the beginning of a text flow:
package flashx.textLayout.edit.examples
{
    import flash.display.Shape;
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_insertInlineGraphic
    {
        static public function insertInlineGraphic(sprite:Sprite):void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How now brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( sprite ));
            var editManager:EditManager = new EditManager( new UndoManager() );
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 0, 0 );
            editManager.insertInlineGraphic( createGraphic(), 6, 6, "none" );
            
        }
        static private function createGraphic():Shape
        {
            var shape:Shape = new Shape();
            shape.graphics.beginFill( 0x993366 );
            shape.graphics.drawCircle( 5, 4, 6 );
            return shape;
        }

    }
}

insertText

()method 
public function insertText(text:String, origOperationState:SelectionState = null):void

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

Inserts text.

Inserts the text at a position or range in the text. If the location supplied in the operationState parameter is a range (or the parameter is null and the current selection is a range), then the text currently in the range is replaced by the inserted text.

Parameters

text:String — the string to insert
 
origOperationState:SelectionState (default = null) — specifies the text in the flow to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example creates and executes an InsertTextOperation:
 
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_insertText
    {
        static public function insertText(sprite:Sprite):void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( sprite ));
            var editManager:EditManager = new EditManager( new UndoManager() );
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 4, 4 );
            editManager.insertText( "now " );
        }
    }
}

modifyInlineGraphic

()method 
public function modifyInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):void

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

Modifies an existing inline graphic.

Set unchanging properties to the values in the original graphic. (Modifying an existing graphic object is typically more efficient than deleting and recreating one.)

Parameters

source:Object — can be either a String interpreted as a uri, a Class interpreted as the class of an Embed DisplayObject, a DisplayObject instance or a URLRequest.
 
width:Object — new width for the image (number or percent)
 
height:Object — new height for the image (number or percent)
 
options:Object (default = null) — none supported
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example inserts a circle at the beginning of a text flow, and then changes the width and height properties of the inline graphic to stretch it into an ellipse:
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    import flash.display.Shape;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_modifyInlineGraphic
    {
        static public function modifyInlineGraphic(sprite:Sprite):void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How now brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( sprite ));
            var editManager:EditManager = new EditManager( new UndoManager() );
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            editManager.selectRange( 0, 0 );
            editManager.insertInlineGraphic( createGraphic(), 6, 6, "none" );
            
            editManager.selectRange( 0, 1 );
            editManager.modifyInlineGraphic( null, '12', '5', 'none' );
        }
    
        static private function createGraphic():Shape
        {
            var shape:Shape = new Shape();
            shape.graphics.beginFill( 0x993366 );
            shape.graphics.drawCircle( 4, 4, 6 );
            return shape;
        }
    }
}

overwriteText

()method 
public function overwriteText(text:String, operationState:SelectionState = null):void

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

Overwrites the selected text.

If the selection is a point selection, the first character is overwritten by the new text.

Parameters

text:String — the string to insert
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example overwrites a string of text in a text flow:
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_overwriteText
    {
        static public function overwriteText(sprite:Sprite):void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How zzz brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( sprite ));
            var editManager:EditManager = new EditManager( new UndoManager() );
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 4, 6 );
            editManager.overwriteText( "now" ); //Displays: How now brown cow.
        }
    }
}

pasteTextScrap

()method 
public function pasteTextScrap(scrapToPaste:flashx.textLayout.edit:TextScrap, operationState:SelectionState = null):void

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

Pastes the TextScrap into the selected area.

If a range of text is specified, the text in the range is deleted.

Parameters

scrapToPaste:flashx.textLayout.edit:TextScrap — the TextScrap to paste
 
operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.

See also


Example  ( How to use this example )

The following example cuts a text scrap and pastes it into a different location in a text flow:
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.edit.TextScrap;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_pasteTextScrap
    {
        static public function pasteText(sprite:Sprite):void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How brown cow now.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( sprite ));
            var editManager:EditManager = new EditManager( new UndoManager() );
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 13, 17 );
            var scrap:TextScrap = editManager.cutTextScrap();
            
            editManager.selectRange( 3, 3 );
            editManager.pasteTextScrap( scrap ); //Displays: How now brown cow.
        }
    }
}

redo

()method 
public function redo():void

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

Reperforms the previous undone operation.

Note: If the IUndoManager associated with this IEditManager is also associated with another IEditManager, then it is possible that the redo operation associated with the other IEditManager is the one redone. This can happen if the FlowOperation of another IEditManager is on top of the redo stack.

This function does nothing if undo is not turned on.

See also


Example  ( How to use this example )

The following example defines a function that reperforms the last undone operation on a text flow:
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_redo
    {
        static public function redo( textFlow:TextFlow ):void
        {
            if( textFlow.interactionManager is IEditManager )
            {
                IEditManager( textFlow.interactionManager ).redo();
            }
        }
    }
}

setUndoManager

()method 
tlf_internal function setUndoManager(undoManager:IUndoManager):void

Parameters

undoManager:IUndoManager

splitParagraph

()method 
public function splitParagraph(operationState:SelectionState = null):void

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

Splits the paragraph at the current position.

If a range of text is specified, the text in the range is deleted.

Parameters

operationState:SelectionState (default = null) — specifies the text to which this operation applies; if null, the operation applies to the current selection.


Example  ( How to use this example )

The following example splits a paragraph into two:
package flashx.textLayout.edit.examples
{
    import flash.display.Sprite;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.edit.TextScrap;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_splitParagraph
    {
        static public function splitParagraph(sprite:Sprite):void
        {
            var textFlow:TextFlow = TextConverter.importToFlow( "How now brown cow.", TextConverter.PLAIN_TEXT_FORMAT );
            textFlow.flowComposer.addController( new ContainerController( sprite ));
            var editManager:EditManager = new EditManager( new UndoManager() );
            textFlow.interactionManager = editManager;
            textFlow.flowComposer.updateAllControllers();
            
            editManager.selectRange( 8, 8 );
            editManager.splitParagraph();    //Displays:     How now
                                            //                brown cow.
        }
    }
}

undo

()method 
public function undo():void

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

Reverses the previous operation.

Note: If the IUndoManager associated with this IEditManager is also associated with another IEditManager, then it is possible that the undo operation associated with the other IEditManager is the one undone. This can happen if the FlowOperation of another IEditManager is on top of the undo stack.

This function does nothing if undo is not turned on.

See also


Example  ( How to use this example )

The following example defines a function that undoes the last operation on a text flow:
package flashx.textLayout.edit.examples
{
    import flashx.textLayout.edit.IEditManager;
    import flashx.textLayout.elements.TextFlow;
    
    public class EditManager_undo
    {
        static public function undo( textFlow:TextFlow ):void
        {
            if( textFlow.interactionManager is IEditManager )
            {
                IEditManager( textFlow.interactionManager ).undo();
            }
        }
    }
}

updateAllControllers

()method 
protected function updateAllControllers():void

Update the display after an operation has modified it

EditManager_example.as

The following example uses the EditManager class to make a line of text editable:
  1. Create a TextFlow (tf) to contain a line of sample text.
  2. Store the text in a SpanElement that is in turn stored in a ParagraphElement.
  3. Create a ContainerController for the text and compose the text for display.
  4. Instantiate the TextFlow manager objects for later use by an event listener.
  5. Create a very simple edit button that allows a user to make the text editable.
  6. Create the button's event listener that toggles between read only and editable states.

The value of the TextFlow's interactionManager property determines whether the sample text is editable. If the property is null, the sample text is read only. If the property is assigned an EditManager instance, the sample text is editable. The createEditButton() method creates a very simple button-like TextField instance. When a user clicks on the TextField instance, the updateEditable() listener function toggles the value of the interactionManager property.

package flashx.textLayout.edit.examples {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.edit.EditManager;
    import flashx.textLayout.elements.ParagraphElement;
    import flashx.textLayout.elements.SpanElement;
    import flashx.textLayout.elements.TextFlow;
    import flashx.undo.UndoManager;
    
    public class EditManager_example extends Sprite
    {
        private var tf:TextFlow;
        private var em:EditManager;
        private var um:UndoManager;
        private var editable:TextField;
        
        public function EditManager_example()
        {
            //define TextFlow
            tf = new TextFlow();
            
            //define elements to contain text
            var p:ParagraphElement = new ParagraphElement();
            var s:SpanElement = new SpanElement();
            s.text ="This is sample text for the EditManager example.";
            
            //add these elements to the TextFlow
            p.addChild(s);
            tf.addChild(p);    
            
            //compose TextFlow to display
            var tfController:ContainerController = new ContainerController(this,600,600);
            tfController.container.y = 10
            tf.flowComposer.addController(tfController);
            tf.flowComposer.updateAllControllers();
            
            //define TextFlow manager objects
            um = new UndoManager();
            em = new EditManager(um);
            tf.interactionManager = null;
            
            createEditButton();
        }
        
        private function createEditButton ():void {
            editable = new TextField();
            editable.appendText("Click to make the sample text editable");
            editable.x = 0;
            editable.y = 50;
            editable.width = 150;
            editable.autoSize = flash.text.TextFieldAutoSize.LEFT;
            editable.selectable = false;
            editable.background = true;
            editable.backgroundColor = 0xAAAAAA;
            
            addChild(editable);
            editable.addEventListener(MouseEvent.CLICK, updateEditable);
        }
        
        private function updateEditable(me:MouseEvent):void{
            if (editable.text.indexOf("read only") >= 0) {
                editable.text = "Click to make the sample text editable";
                tf.interactionManager = null;
            }
            else {
                editable.text = "Click to make the sample text read only";
                tf.interactionManager = em;                
            }
            
        }
    }        
}