套件 | flashx.textLayout.edit |
類別 | public class EditManager |
繼承 | EditManager SelectionManager Object |
實作 | IEditManager |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
若要啟用文字流排編輯,請將 EditManager 物件指定給 TextFlow 物件的 interactionManager
屬性。編輯管理員會處理文字的變更 (如插入、刪除及格式變更)。如果編輯管理員具有還原管理員,則可以回復變更。編輯管理員會視需要觸發文字流排的重新撰寫及顯示。
EditManager 類別支援以下鍵盤捷徑:
按鍵 | 結果 |
---|---|
ctrl-z | undo |
ctrl-y | redo |
ctrl-backspace | deletePreviousWord |
ctrl-delete | deleteNextWord |
alt+delete | deleteNextWord |
ctrl+alt-delete | deleteNextWord |
ctrl-shift-hyphen | 插入選擇性連字號 |
ctrl+backspace | deletePreviousWord |
alt+backspace | deletePreviousWord |
ctrl+alt-backspace | deletePreviousWord |
INSERT | 切換 overWriteMode |
backspace | deletePreviousCharacter |
ENTER | 如果 textFlow.configuration.manageEnterKey 位於清單中,即會建立新的清單項目,否則會建立新段落 |
shift-ENTER | 如果 textFlow.configuration.manageEnterKey 會建立新段落 |
TAB | 如果 textFlow.configuration.manageTabKey 位於清單中,即會建立巢狀清單,否則會插入 TAB,或利用 TAB 來覆寫下一個字元 |
shift-TAB | 如果 textFlow.configuration.manageTabKey 位於清單的第一個項目中,即會將該項目移出清單 (將它升階) |
注意:以下按鍵在 Windows 上無效:alt-backspace、alt-delete、ctrl+alt-backspace 以及 ctrl+alt-delete。 這些按鍵不會為執行階段產生事件。
相關 API 元素
方法 | 定義自 | ||
---|---|---|---|
EditManager(undoManager:IUndoManager = null)
建立 EditManager 物件。 | EditManager | ||
處理 activate 事件。 | SelectionManager | ||
applyContainerFormat(containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
將容器樣式套用至選取範圍中的任何容器。 | EditManager | ||
applyFormat(leafFormat:flashx.textLayout.formats:ITextLayoutFormat, paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
變更指定 (或目前) 選取範圍的格式。 | EditManager | ||
applyFormatToElement(targetElement:FlowElement, format:flashx.textLayout.formats:ITextLayoutFormat, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
將樣式套用至指定的元素。 | EditManager | ||
applyLeafFormat(characterFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
變更在指定 (或目前) 選取範圍中套用至分葉元素的格式。 | EditManager | ||
applyLink(href:String, targetString:String = null, extendToLinkBoundary:Boolean = false, operationState:SelectionState = null):LinkElement
將選取範圍轉換為連結,或將連結轉換為一般文字。 | EditManager | ||
applyParagraphFormat(paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
將段落樣式套用至選取範圍中的任何段落。 | EditManager | ||
將文字轉換為 TCY 執行,或將 TCY 執行轉換為非 TCY 文字。 | EditManager | ||
開始新的作業群組。 | EditManager | ||
changeElementID(newID:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
變更元素的 ID。 | EditManager | ||
changeStyleName(newName:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void 從下列版本以後不建議使用: 2.0: 請使用 applyFormatToElement
變更元素或一部分元素的 styleName。 | EditManager | ||
changeTypeName(newName:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
變更元素或一部分元素的 typeName。 | EditManager | ||
clearFormat(leafFormat:flashx.textLayout.formats:ITextLayoutFormat, paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
將指定 (或目前) 選取範圍的格式解除定義。 | EditManager | ||
clearFormatOnElement(targetElement:FlowElement, format:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
將指定元素的樣式解除定義。 | EditManager | ||
createDiv(parent:FlowGroupElement = null, format:flashx.textLayout.formats:ITextLayoutFormat = null, operationState:SelectionState = null):DivElement 在同時包含範圍開始與結束點的最低常見父輩元素上,建立包含 operationState 中所指定之整個範圍的新 DivElement。 | EditManager | ||
createList(parent:FlowGroupElement = null, format:flashx.textLayout.formats:ITextLayoutFormat = null, operationState:SelectionState = null):ListElement 在同時包含範圍開始與結束點的最低常見父輩元素上,建立包含 operationState 中所指定之整個範圍的新 ListElement。 | EditManager | ||
createSubParagraphGroup(parent:FlowGroupElement = null, format:flashx.textLayout.formats:ITextLayoutFormat = null, operationState:SelectionState = null):SubParagraphGroupElement 在同時包含範圍開始與結束點的最低常見父輩元素上,建立包含 operationState 中所指定之整個範圍的新 SubParagraphGroupElement。 | EditManager | ||
刪除選取的區域,並在 TextScrap 物件中傳回刪除的區域。 | EditManager | ||
處理 deactivate 事件。 | SelectionManager | ||
刪除某範圍的文字,或如果指定點選取,則刪除下一個字元。 | EditManager | ||
刪除下一個單字。 | EditManager | ||
刪除某範圍的文字,或如果指定點選取,則刪除上一個字元。 | EditManager | ||
刪除上一個單字。 | EditManager | ||
刪除某範圍的文字。 | EditManager | ||
[覆寫]
執行 FlowOperation。 | EditManager | ||
處理 edit 事件。 | SelectionManager | ||
結束作業群組。 | EditManager | ||
SelectionManager | |||
處理 focusChange 事件。 | SelectionManager | ||
處理 focusIn 事件。 | SelectionManager | ||
處理 focusOut 事件。 | SelectionManager | ||
getCommonCharacterFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:TextLayoutFormat
取得指定文字範圍或目前選取範圍中所有字元都適用的字元格式特質。 | SelectionManager | ||
getCommonContainerFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:TextLayoutFormat
取得指定文字範圍或目前選取範圍中所有容器都適用的容器格式特質。 | SelectionManager | ||
getCommonParagraphFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:TextLayoutFormat
取得指定文字範圍或目前選取範圍中所有段落都適用的段落格式特質。 | SelectionManager | ||
取得目前選取範圍的 SelectionState 物件。 | SelectionManager | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出是否有選取範圍。 | SelectionManager | ||
處理 imeStartComposition 事件
| SelectionManager | ||
insertInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):InlineGraphicElement
插入影像。 | EditManager | ||
插入文字。 | EditManager | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出選取範圍是否涵蓋某範圍的文字。 | SelectionManager | ||
處理 keyDown 事件。 | SelectionManager | ||
處理 keyFocusChange 事件。 | SelectionManager | ||
處理 keyUp 事件。 | SelectionManager | ||
處理 menuSelect 事件。 | SelectionManager | ||
modifyInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):void
修改現有內嵌圖形。 | EditManager | ||
處理 mouseDoubleClick 事件。 | SelectionManager | ||
處理 mouseDown 事件。 | SelectionManager | ||
處理 mouseMove 事件。 | SelectionManager | ||
處理 mouseOut 事件。 | SelectionManager | ||
處理 mouseOver 事件。 | SelectionManager | ||
處理 mouseUp 事件。 | SelectionManager | ||
處理 mouseWheel 事件。 | SelectionManager | ||
moveChildren(source:FlowGroupElement, sourceIndex:int, numChildren:int, destination:FlowGroupElement, destinationIndex:int, selectionState:SelectionState = null):void 將一組 FlowElements 從某個 FlowGroupElement 移至另一個。 | EditManager | ||
插入或刪除文字時,更新選取管理員。 | SelectionManager | ||
覆寫選取的文字。 | EditManager | ||
pasteTextScrap(scrapToPaste:flashx.textLayout.edit:TextScrap, operationState:SelectionState = null):void
將 TextScrap 貼入選取的區域。 | EditManager | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
重新執行上一個還原作業。 | EditManager | ||
重新顯示選取範圍形狀。 | SelectionManager | ||
SelectionManager | |||
SelectionManager | |||
將焦點放在選取範圍的第一個容器。 | SelectionManager | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
設定目前選取範圍的 SelectionState 物件。 | SelectionManager | ||
處理 softKeyboardActivating 事件
| SelectionManager | ||
在指定的位置中分割目標元素,在目前的這一個元素之後建立新元素。 | EditManager | ||
在目前位置中分割段落,在目前的這一個段落之後建立新段落。 | EditManager | ||
處理 TextEvent。 | SelectionManager | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
回復上一個作業。 | EditManager | ||
EditManager | |||
會傳回指定之物件的基本值。 | Object |
allowDelayedOperations | 屬性 |
delayUpdates | 屬性 |
overwriteMode | 屬性 |
public static var overwriteMode:Boolean = false
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
指出要開啟或關閉覆寫模式。
若為 true
,則按鍵輸入會覆寫游標後面的字元。若為 false
,則會在游標位置插入按鍵輸入。
undoManager | 屬性 |
undoManager:IUndoManager
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
指定給此編輯管理員的 IUndoManager。
若要允許還原 (及重做) 編輯,請將 IUndoManager 實體傳遞給 EditManager 建構函式。還原管理員會維護已執行的作業堆疊,且可以還原或重做個別的作業。
注意:如果直接修改 TextFlow (不是透過呼叫 EditManager,而是直接呼叫受管理的 FlowElement 物件),則 EditManager 會清除還原堆疊,以防止堆疊與目前狀態不同步。
實作
public function get undoManager():IUndoManager
EditManager | () | 建構函式 |
public function EditManager(undoManager:IUndoManager = null)
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
建立 EditManager 物件。
將 EditManager 物件指定給文字流排的 interactionManager
屬性,以啟用該文字流排的編輯。
若要支援還原及重做變更,請將 IUndoManager 實體傳遞給 EditManager 建構函式。您可以使用 flashx.undo.UndoManager
類別或建立自訂 IUndoManager 實體。使用自訂 IUndoManager 實體,可整合 Text Layout Framework 變更與非 UndoManager 類別實體的現有還原管理員。若要建立自訂 IUndoManager 實體,請確認用來定義還原管理員的類別實作 IUndoManager 介面。
undoManager:IUndoManager (default = null ) — 應用程式的 UndoManager
|
相關 API 元素
範例 ( 如何使用本範例 )
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; } } }
applyContainerFormat | () | 方法 |
public function applyContainerFormat(containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
將容器樣式套用至選取範圍中的任何容器。
格式物件中任何為 null
的樣式屬性都會保持不變。
參數
containerFormat:flashx.textLayout.formats:ITextLayoutFormat — 要套用至範圍中容器的格式
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function applyFormat(leafFormat:flashx.textLayout.formats:ITextLayoutFormat, paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
變更指定 (或目前) 選取範圍的格式。
執行套用新格式的可還原作業。只會套用針對 TextLayoutFormat 物件設定的樣式特質。格式物件中的未定義特質並不會變更。
參數
leafFormat:flashx.textLayout.formats:ITextLayoutFormat — 要套用至分葉元素 (如範圍及內嵌圖形) 的格式。
| |
paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat — 要套用至段落元素的格式。
| |
containerFormat:flashx.textLayout.formats:ITextLayoutFormat — 要套用至容器的格式。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function applyFormatToElement(targetElement:FlowElement, format:flashx.textLayout.formats:ITextLayoutFormat, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
將樣式套用至指定的元素。
格式物件中任何為 null
的樣式屬性都會保持不變。只會套用與指定元素相關的樣式。
參數
targetElement:FlowElement — 要套用樣式的元素。
| |
format:flashx.textLayout.formats:ITextLayoutFormat — 包含要套用之樣式的格式。
| |
relativeStart:int (default = 0 ) — 與元素開頭之間的偏移量,這是指定新格式時用來分割元素的數量。
| |
relativeEnd:int (default = -1 ) — 與元素開頭之間的偏移量,這是套用新格式時用來分割元素的數量。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
applyLeafFormat | () | 方法 |
public function applyLeafFormat(characterFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
變更在指定 (或目前) 選取範圍中套用至分葉元素的格式。
執行將新格式套用至分葉元素 (如 SpanElement 及 InlineGraphicElement 物件) 的可還原作業。只會套用針對 TextLayoutFormat 物件設定的樣式特質。格式物件中的未定義特質會變更。
參數
characterFormat:flashx.textLayout.formats:ITextLayoutFormat — 要套用的格式。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function applyLink(href:String, targetString:String = null, extendToLinkBoundary:Boolean = false, operationState:SelectionState = null):LinkElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10 - + 10.2, AIR 1.5 |
將選取範圍轉換為連結,或將連結轉換為一般文字。
執行建立或移除連結的可還原作業。
如果指定 target
參數,則該參數必須是下列其中一個值:
- "_self"
- "_blank"
- "_parent"
- "_top"
在掛載瀏覽器的執行階段中,目標 "_self" 會取代目前的 html 頁面。因此,如果包含連結的 SWF 內容位於頁框或頁框組內的頁面中,則會在該頁框內載入連結的內容。如果頁面在最上層,則會開啟連結的內容來取代原始頁面。目標 "_blank" 會開啟沒有名稱的新瀏覽器 視窗。目標 "_parent" 會取代含有 SWF 內容之 html 頁面的父輩。目標 "_top" 會取代目前瀏覽器視窗中的最上層頁面。
在其他執行階段 (如 Adobe AIR) 中,連結會在使用者的預設瀏覽器中開啟,並會忽略 target
參數。
extendToLinkBoundary
參數可決定編輯管理員如何處理與一或多個現有連結相交的選取範圍。如果參數是 true
,則會將該作業視為套用至選取範圍的一個單元,以及視為套用至現有連結的完整文字。因此,會建立單一連結,該連結會從相交的第一個連結的開頭延伸至相交的最後一個連結的結尾。反之,如果 extendToLinkBoundary
是 false
,則現有局部選取的連結會分割成兩個連結。
參數
href:String — 連結所參照的 URI。
| |
targetString:String (default = null ) — 連結的目標瀏覽器視窗。
| |
extendToLinkBoundary:Boolean (default = false ) — 指定是否合併選取範圍與任何重疊的現有連結,然後套用變更。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
LinkElement — 已建立的 LinkElement。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function applyParagraphFormat(paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
將段落樣式套用至選取範圍中的任何段落。
格式物件中任何為 null
的樣式屬性都會保持不變。
參數
paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat — 要套用至選取段落的格式。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function applyTCY(tcyOn:Boolean, operationState:SelectionState = null):flashx.textLayout.elements:TCYElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10 - + 10.2, AIR 1.5 |
將文字轉換為 TCY 執行,或將 TCY 執行轉換為非 TCY 文字。
TCY (或直排內橫排) 會讓垂直行內的文字以水平格式顯示,這是讓小區塊的非日文文字或數字 (如日期) 更容易在垂直的文字形式中讀取的方式。
參數
tcyOn:Boolean — 設定為 true 可將 TCY 套用至文字範圍,設定為 false 則可移除 TCY。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
flashx.textLayout.elements:TCYElement — 已建立的 TCYElement。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function beginCompositeOperation():void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
開始新的作業群組。
在呼叫 beginCompositeOperation()
之後而在對應呼叫 endCompositeOperation()
之前執行的所有作業,都會執行並群組為可以使用一個單元來還原的單一作業。
beginCompositeOperation
/endCompositeOperation
區塊可以是另一個 beginCompositeOperation
/endCompositeOperation
區塊下的巢狀項目。
範例 ( 如何使用本範例 )
beginCompositeOperation()
和 endCompositeOperation()
函數,則每一個子作業就必須分別取消,而不是整組復原。
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(); } } }
changeElementID | () | 方法 |
public function changeElementID(newID:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
變更元素的 ID。
如果設定 relativeStart
或 relativeEnd
參數 (設定為預設值以外的值),則會分割元素。這個範圍之外的一部分元素會保留原始 ID。如果同時設定 relativeStart
及 relativeEnd
參數,則會建立 ID 重複的元素。
參數
newID:String — 新的 ID 值。
| |
targetElement:FlowElement — 要修改的元素。
| |
relativeStart:int (default = 0 ) — 與元素開頭之間的偏移量,這是指定新 ID 時用來分割元素的數量。
| |
relativeEnd:int (default = -1 ) — 與元素開頭之間的偏移量,這是指定新 ID 時用來分割元素的數量。
| |
operationState:SelectionState (default = null ) — 指定還原此作業時要還原的選取範圍;如果是 null ,則作業會儲存目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function changeStyleName(newName:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
變更元素或一部分元素的 styleName。
如果設定 relativeStart
或 relativeEnd
參數 (設定為預設值以外的值),則會分割元素。這個範圍之外的元素部分會保留原始樣式。
參數
newName:String — 新樣式的名稱。
| |
targetElement:FlowElement — 指定要變更的元素。
| |
relativeStart:int (default = 0 ) — 與元素開頭之間的偏移量,這是指定新樣式時用來分割元素的數量。
| |
relativeEnd:int (default = -1 ) — 與元素結尾之間的偏移量,這是指定新樣式時用來分割元素的數量。
| |
operationState:SelectionState (default = null ) — 指定還原此作業時要還原的選取範圍;如果是 null ,則作業會儲存目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 ); } } }
changeTypeName | () | 方法 |
public function changeTypeName(newName:String, targetElement:FlowElement, relativeStart:int = 0, relativeEnd:int = -1, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
變更元素或一部分元素的 typeName。
如果設定 relativeStart
或 relativeEnd
參數 (設定為預設值以外的值),則會分割元素。這個範圍之外的元素部分會保留原始樣式。
參數
newName:String — 新類型的名稱。
| |
targetElement:FlowElement — 指定要變更的元素。
| |
relativeStart:int (default = 0 ) — 與元素開頭之間的偏移量,這是指定新樣式時用來分割元素的數量。
| |
relativeEnd:int (default = -1 ) — 與元素結尾之間的偏移量,這是指定新樣式時用來分割元素的數量。
| |
operationState:SelectionState (default = null ) — 指定還原此作業時要還原的選取範圍;如果是 null ,則作業會儲存目前的選取範圍。
|
clearFormat | () | 方法 |
public function clearFormat(leafFormat:flashx.textLayout.formats:ITextLayoutFormat, paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat, containerFormat:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
將指定 (或目前) 選取範圍的格式解除定義。
執行解除定義指定格式的可還原作業。只會套用針對 TextLayoutFormat 物件設定的樣式特質。格式物件中的未定義特質並不會變更。
參數
leafFormat:flashx.textLayout.formats:ITextLayoutFormat — 設定值指示屬性將選取範圍中 LeafFlowElement 物件的格式解除定義。
| |
paragraphFormat:flashx.textLayout.formats:ITextLayoutFormat — 設定值指示屬性將選取範圍中 ParagraphElement 物件的格式解除定義。
| |
containerFormat:flashx.textLayout.formats:ITextLayoutFormat — 設定值指示屬性將選取範圍中 ContainerController 物件的格式解除定義。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
clearFormatOnElement | () | 方法 |
public function clearFormatOnElement(targetElement:FlowElement, format:flashx.textLayout.formats:ITextLayoutFormat, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
將指定元素的樣式解除定義。
格式物件中任何為 undefined
的樣式屬性都會保持不變。以指定格式定義的任何樣式,會在指定元素上解除定義。
參數
targetElement:FlowElement — 要套用樣式的元素。
| |
format:flashx.textLayout.formats:ITextLayoutFormat — 包含要解除定義之樣式的格式。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
createDiv | () | 方法 |
public function createDiv(parent:FlowGroupElement = null, format:flashx.textLayout.formats:ITextLayoutFormat = null, operationState:SelectionState = null):DivElement
在同時包含範圍開始與結束點的最低常見父輩元素上,建立包含 operationState 中所指定之整個範圍的新 DivElement。若開始點與結束點相同,即會在含單一子系段落的位置上建立新的 DivElement。
參數
parent:FlowGroupElement (default = null ) — 指定新 DivElement 的父輩元素。若為 null ,新的父輩將是包含 SelectionState 的最低層級。
| |
format:flashx.textLayout.formats:ITextLayoutFormat (default = null ) — 格式化特質以套用至新的 DivElement。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
DivElement — 已建立的新 DivElement。
|
createList | () | 方法 |
public function createList(parent:FlowGroupElement = null, format:flashx.textLayout.formats:ITextLayoutFormat = null, operationState:SelectionState = null):ListElement
在同時包含範圍開始與結束點的最低常見父輩元素上,建立包含 operationState 中所指定之整個範圍的新 ListElement。範圍內的每個段落都將成為新 ListElement 中的 ListItemElement。若開始點與結束點相同,即會在含單一 ListItemElement 子系的位置上建立新的 ListElement。
參數
parent:FlowGroupElement (default = null ) — 選擇性地指定新 ListElement 的父輩元素。若為 null ,新的父輩將是包含 SelectionState 的最低層級。
| |
format:flashx.textLayout.formats:ITextLayoutFormat (default = null ) — 格式化特質以套用至新的 ListElement。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
ListElement — 已建立的新 ListElement。
|
createSubParagraphGroup | () | 方法 |
public function createSubParagraphGroup(parent:FlowGroupElement = null, format:flashx.textLayout.formats:ITextLayoutFormat = null, operationState:SelectionState = null):SubParagraphGroupElement
在同時包含範圍開始與結束點的最低常見父輩元素上,建立包含 operationState 中所指定之整個範圍的新 SubParagraphGroupElement。 若開始點與結束點相同,則不會執行任何動作。
參數
parent:FlowGroupElement (default = null ) — 指定新 SubParagraphGroupElement 元素的父輩元素。若為 null ,新的父輩將是包含 SelectionState 的最低層級。
| |
format:flashx.textLayout.formats:ITextLayoutFormat (default = null ) — 格式化特質以套用至新的 SubParagraphGroupElement。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
SubParagraphGroupElement — 已建立的新 SubParagraphGroupElement。
|
cutTextScrap | () | 方法 |
public function cutTextScrap(operationState:SelectionState = null):flashx.textLayout.edit:TextScrap
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
刪除選取的區域,並在 TextScrap 物件中傳回刪除的區域。
產生的 TextScrap 可以張貼至系統剪貼簿,或用於後續的 pasteTextOperation()
作業。
參數
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
flashx.textLayout.edit:TextScrap — 已剪下的 TextScrap。
|
相關 API 元素
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function deleteNextCharacter(operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
刪除某範圍的文字,或如果指定點選取,則刪除下一個字元。
參數
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function deleteNextWord(operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
刪除下一個單字。
如果選取範圍,則會刪除範圍內的第一個單字。
參數
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function deletePreviousCharacter(operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
刪除某範圍的文字,或如果指定點選取,則刪除上一個字元。
參數
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function deletePreviousWord(operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
刪除上一個單字。
如果選取範圍,則會刪除範圍內的第一個單字。
參數
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function deleteText(operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
刪除某範圍的文字。
參數
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
override public function doOperation(operation:FlowOperation):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
執行 FlowOperation。
更新文字流排的 IEditManager 函數,該函數會呼叫 doOperation()
方法。除非您建立專屬的自訂作業,否則一般並不需要直接呼叫此函數。
將在下列步驟中繼續此函數:
- 執行此作業前,請先清除所有擱置作業。
- 傳送可取消的 flowOperationBegin 事件。如果取消,則會立即傳回此方法。
- 執行作業。作業會傳回
true
或false
。False
表示沒有進行任何變更。 - 將作業推入還原堆疊中。
- 清除重做堆疊。
- 更新顯示。
- 傳送可取消的 flowOperationEnd 事件。
例外處理:如果作業擲出例外,則會捕捉到該例外,並將錯誤附加至 flowOperationEnd 事件。如果未取消事件,則會重新擲出錯誤。
參數
operation:FlowOperation — FlowOperation 物件
|
範例 ( 如何使用本範例 )
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 } } }
endCompositeOperation | () | 方法 |
public function endCompositeOperation():void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
結束作業群組。
自前次呼叫 beginCompositeOperation()
之後執行的所有作業會群組為 CompositeOperation,並在稍後完成。此 CompositeOperation 物件會新增至還原堆疊,或如果此撰寫作業是另一個撰寫作業下的巢狀項目,則會新增至父作業。
範例 ( 如何使用本範例 )
beginCompositeOperation()
和 endCompositeOperation()
函數,則每一個子作業就必須分別取消,而不是整組復原。
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(); } } }
insertInlineGraphic | () | 方法 |
public function insertInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):InlineGraphicElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10 - + 10.2, AIR 1.5 |
插入影像。
影像來源可以是含有 URI 的字串、URLRequest 物件、代表內嵌資產的 Class 物件,或 DisplayObject 實體。
寬度及高度值可以是像素數、百分比或字串「auto」(在此情況下,會使用圖形的實際尺寸)。
將 float
設定為在 Float 類別所定義的其中一個常數,藉此指定影像要顯示在任何文字的左邊或右邊,還是要內嵌在文字中。
參數
source:Object — 可以是解譯為 URI 的 String、解譯為內嵌 DisplayObject 之類別的 Class、DisplayObject 實體或 URLRequest。
| |
width:Object — 要插入的影像寬度 (數字、百分比或「auto」)
| |
height:Object — 要插入的影像高度 (數字、百分比或「auto」)
| |
options:Object (default = null ) — 不支援.
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
InlineGraphicElement |
相關 API 元素
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function insertText(text:String, origOperationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
插入文字。
在文字的某個位置或某個範圍,插入文字。如果 operationState
參數中提供的位置是範圍 (或參數是 null
,而目前的選取是範圍),則會以插入的文字來取代目前範圍中的文字。
參數
text:String — 要插入的字串。
| |
origOperationState:SelectionState (default = null ) — 指定流排中要套用此作業的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function modifyInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
修改現有內嵌圖形。
在原始圖形中設定為不變更屬性的值 (修改現有的圖形物件,一般會比刪除並重建圖形簡單)。
參數
source:Object — 可以是解譯為 URI 的 String、解譯為內嵌 DisplayObject 之類別的 Class、DisplayObject 實體或 URLRequest。
| |
width:Object — 影像的新寬度 (數字或百分比)。
| |
height:Object — 影像的新高度 (數字或百分比)。
| |
options:Object (default = null ) — 不支援.
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
width
和 height
屬性,以拉伸為一個橢圓形:
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; } } }
moveChildren | () | 方法 |
public function moveChildren(source:FlowGroupElement, sourceIndex:int, numChildren:int, destination:FlowGroupElement, destinationIndex:int, selectionState:SelectionState = null):void
將一組 FlowElements 從某個 FlowGroupElement 移至另一個。desinationElement 必須是所移動之子系的有效父輩類型,否則會擲出例外。
參數
source:FlowGroupElement — 要移動之元素的原始父輩。
| |
sourceIndex:int — 要移動之第一個元素來源內的子系索引。
| |
numChildren:int — 所移動的子系數目。
| |
destination:FlowGroupElement — 移動後之元素的新父輩。
| |
destinationIndex:int — 元素移動之目的地內的子系索引。
| |
selectionState:SelectionState (default = null ) — 指定要套用此作業的文字,以及還原時選取範圍傳回的文字。若為 null ,此作業會套用至目前的選取範圍。如果目前沒有任何選取範圍,此參數便不得為 null。
|
overwriteText | () | 方法 |
public function overwriteText(text:String, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
覆寫選取的文字。
如果選取範圍是點選取,則新的文字會覆寫第一個字元。
參數
text:String — 要插入的字串。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function pasteTextScrap(scrapToPaste:flashx.textLayout.edit:TextScrap, operationState:SelectionState = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
將 TextScrap 貼入選取的區域。
如果指定了文字範圍,則會刪除範圍內的文字。
參數
scrapToPaste:flashx.textLayout.edit:TextScrap — 要貼上的 TextScrap。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
相關 API 元素
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function redo():void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
重新執行上一個還原作業。
注意:如果與此 IEditManager 相關的 IUndoManager 也與另一個 IEditManager 相關,則重做的可能是與另一個 IEditManager 相關的重做作業。如果另一個 IEditManager 的 FlowOperation 位在重做堆疊的上層,則會發生此狀況。
如果未開啟還原,則此函數不會有任何作用。
相關 API 元素
範例 ( 如何使用本範例 )
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(); } } } }
splitElement | () | 方法 |
public function splitElement(target:FlowGroupElement, operationState:SelectionState = null):FlowGroupElement
在指定的位置中分割目標元素,在目前的這一個元素之後建立新元素。若 operationState 是一個範圍,則會刪除該範圍內的文字。新元素會建立在由 operationState 指定的文字位置之後。注意:分割 SubParagraphGroupElement 將不會有任何效果,因為它們將自動與相鄰的元素重新合併。
您可能會想使用此作業的範例是,若有一個清單,而您想要將其分割成兩個清單。
參數
target:FlowGroupElement — 要分割的元素。
| |
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
FlowGroupElement — 已建立的新段落。
|
splitParagraph | () | 方法 |
public function splitParagraph(operationState:SelectionState = null):ParagraphElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
在目前位置中分割段落,在目前的這一個段落之後建立新段落。
如果指定了文字範圍,則會刪除範圍內的文字。
參數
operationState:SelectionState (default = null ) — 指定此作業要套用的文字;如果是 null ,則作業會套用至目前的選取範圍。
|
ParagraphElement — 已建立的新段落。
|
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function undo():void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
回復上一個作業。
注意:如果與此 IEditManager 相關的 IUndoManager 也與另一個 IEditManager 相關,則還原的可能是與另一個 IEditManager 相關的還原作業。如果另一個 IEditManager 的 FlowOperation 位在還原堆疊的上層,則會發生此狀況。
如果未開啟還原,則此函數不會有任何作用。
相關 API 元素
範例 ( 如何使用本範例 )
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 | () | 方法 |
public function updateAllControllers():void
- 建立 TextFlow (
tf
) 來包含一行的範例文字。 - 將文字儲存至 SpanElement 中,然後再儲存至 ParagraphElement。
- 為文字建立 ContainerController 以及編排文字的顯示方式。
- 實體化 TextFlow 管理員物件,方便以後供事件偵聽程式使用。
- 建立一個十分簡易的編輯按鈕,讓使用者可以讓文字變成可編輯。
- 建立按鈕的事件偵聽程式,以便在唯讀和可編輯的狀態之間切換。
TextFlow 的 interactionManager
屬性的值會決定範例文字是否可以編輯。如果屬性為 null
,範例文字是唯讀的。如果屬性被指派一個 EditManager 實體,則範例文字是可以編輯的。createEditButton() 方法會建立一個十分簡單而且與按鈕類似的 TextField 實體。當使用者按一下 TextField 實體,updateEditable()
偵聽程式函數會切換 interactionManager
屬性的值。
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; } } } }
Tue Jun 12 2018, 03:47 PM Z