套件 | flashx.textLayout.edit |
類別 | public class SelectionManager |
繼承 | SelectionManager Object |
實作 | ISelectionManager |
子類別 | EditManager |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
選取管理員會記錄選取的文字範圍、管理其格式,並會處理影響選取範圍的事件。若要允許使用者在文字流排中進行選取,請將 SelectionManager 物件指定給文字流排的 interactionManager
屬性 (若要允許編輯,請指定 EditManager 類別的實體以擴充 SelectionManager)。
以下表格說明 SelectionManager 類別如何處理鍵盤捷徑:
TB,LTR | TB,RTL | TL,LTR | RL,RTL | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
none | ctrl | alt|ctrl+alt | none | ctrl | alt|ctrl+alt | none | ctrl | alt|ctrl+alt | none | ctrl | alt|ctrl+alt | |
leftarrow | previousCharacter | previousWord | previousWord | nextCharacter | nextWord | nextWord | nextLine | endOfDocument | endOfParagraph | nextLine | endOfDocument | endOfParagraph |
uparrow | previousLine | startOfDocument | startOfParagraph | previousLine | startOfDocument | startOfParagraph | previousCharacter | previousWord | previousWord | nextCharacter | nextWord | nextWord |
rightarrow | nextCharacter | nextWord | nextWord | previousCharacter | previousWord | previousWord | previousLine | startOfDocument | startOfParagraph | previousLine | startOfDocument | startOfParagraph |
downarrow | nextLine | endOfDocument | endOfParagraph | nextLine | endOfDocument | endOfParagraph | nextCharacter | nextWord | nextWord | previousCharacter | previousWord | previousWord |
home | startOfLine | startOfDocument | startOfLine | startOfLine | startOfDocument | startOfLine | startOfLine | startOfDocument | startOfLine | startOfLine | startOfDocument | startOfLine |
end | endOfLine | endOfDocument | endOfLine | endOfLine | endOfDocument | endOfLine | endOfLine | endOfDocument | endOfLine | endOfLine | endOfDocument | endOfLine |
pagedown | nextPage | nextPage | nextPage | nextPage | nextPage | nextPage | nextPage | nextPage | nextPage | nextPage | nextPage | nextPage |
pageup | previousPage | previousPage | previousPage | previousPage | previousPage | previousPage | previousPage | previousPage | previousPage | previousPage | previousPage | previousPage |
機碼:
- none = 無修飾詞
- ctrl、shift、alt = 修飾詞
- Alt 鍵 和 Ctrl+Alt 鍵在所有平台上都相同 (在部分平台上,Alt 鍵無法取得 Text Layout Framework (TLF))
- shift 鍵修飾詞,利用指定的方式擴充選取範圍的有效結尾
- TB (由上往下),RL (由右往左) 是 textFlow 層級
blockProgression
設定 - LTR (由左往右),RTL (由右往左) 是 textFlow 層級
direction
設定 - textFlow 中邏輯順序的 next 和 prev - RTL 文字的效用是選取範圍往實體方向移動
相關 API 元素
flashx.elements.TextFlow
屬性 | 定義自 | ||
---|---|---|---|
absoluteEnd : int [唯讀]
選取範圍結尾的文字位置 (從文字流排開頭算起的偏移量)。 | SelectionManager | ||
absoluteStart : int [唯讀]
選取範圍開頭的文字位置 (從文字流排開頭算起的偏移量)。 | SelectionManager | ||
activePosition : int [唯讀]
選取範圍的作用點。 | SelectionManager | ||
anchorPosition : int [唯讀]
選取範圍的錨點。 | SelectionManager | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
currentSelectionFormat : SelectionFormat [唯讀]
目前 SelectionFormat 物件。 | SelectionManager | ||
editingMode : String [唯讀]
編輯模式。 | SelectionManager | ||
focused : Boolean [唯讀]
指出文字流排中的容器是否具有焦點。 | SelectionManager | ||
focusedSelectionFormat : SelectionFormat
用來在具有焦點的容器中繪製選取範圍的 SelectionFormat 物件。 | SelectionManager | ||
inactiveSelectionFormat : SelectionFormat
當選取範圍不在作用中視窗時,用來繪製選取範圍的 SelectionFormat 物件。 | SelectionManager | ||
textFlow : flashx.textLayout.elements:TextFlow
此選取管理員所管理的 TextFlow 物件。 | SelectionManager | ||
unfocusedSelectionFormat : SelectionFormat
當選取範圍不在具有焦點的容器但在作用中視窗時,用來繪製選取範圍的SelectionFormat 物件。 | SelectionManager | ||
windowActive : Boolean [唯讀]
指出與文字流排相關的視窗是否為作用中視窗。 | SelectionManager |
屬性 | 定義自 | ||
---|---|---|---|
pointFormat : flashx.textLayout.formats:ITextLayoutFormat [唯讀]
將套用至插入文字的格式。 | SelectionManager |
方法 | 定義自 | ||
---|---|---|---|
建立 SelectionManager 物件。 | SelectionManager | ||
處理 activate 事件。 | SelectionManager | ||
處理 deactivate 事件。 | SelectionManager | ||
執行 SelectionManager 作業 - 雖然可能無法修改流程,但是用戶端仍然可將之取消。 | SelectionManager | ||
處理 edit 事件。 | SelectionManager | ||
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 | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出選取範圍是否涵蓋某範圍的文字。 | SelectionManager | ||
處理 keyDown 事件。 | SelectionManager | ||
處理 keyFocusChange 事件。 | SelectionManager | ||
處理 keyUp 事件。 | SelectionManager | ||
處理 menuSelect 事件。 | SelectionManager | ||
處理 mouseDoubleClick 事件。 | SelectionManager | ||
處理 mouseDown 事件。 | SelectionManager | ||
處理 mouseMove 事件。 | SelectionManager | ||
處理 mouseOut 事件。 | SelectionManager | ||
處理 mouseOver 事件。 | SelectionManager | ||
處理 mouseUp 事件。 | SelectionManager | ||
處理 mouseWheel 事件。 | SelectionManager | ||
插入或刪除文字時,更新選取管理員。 | SelectionManager | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
重新顯示選取範圍形狀。 | SelectionManager | ||
SelectionManager | |||
SelectionManager | |||
將焦點放在選取範圍的第一個容器。 | SelectionManager | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
設定目前選取範圍的 SelectionState 物件。 | SelectionManager | ||
處理 softKeyboardActivating 事件
| SelectionManager | ||
處理 TextEvent。 | SelectionManager | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
方法 | 定義自 | ||
---|---|---|---|
設定滑鼠游標。 | SelectionManager |
absoluteEnd | 屬性 |
absoluteStart | 屬性 |
activePosition | 屬性 |
anchorPosition | 屬性 |
currentSelectionFormat | 屬性 |
currentSelectionFormat:SelectionFormat
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
目前 SelectionFormat 物件。
目前 SelectionFormat 物件是根據 windowActive
及 focused
屬性的目前狀態,從指定給 unfocusedSelectionFormat
、inactiveSelectionFormat
及 focusedSelectionFormat
屬性的 SelectionFormat 物件中選擇。
實作
public function get currentSelectionFormat():SelectionFormat
相關 API 元素
editingMode | 屬性 |
focused | 屬性 |
focusedSelectionFormat | 屬性 |
focusedSelectionFormat:SelectionFormat
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
用來在具有焦點的容器中繪製選取範圍的 SelectionFormat 物件。
實作
public function get focusedSelectionFormat():SelectionFormat
public function set focusedSelectionFormat(value:SelectionFormat):void
相關 API 元素
inactiveSelectionFormat | 屬性 |
inactiveSelectionFormat:SelectionFormat
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
當選取範圍不在作用中視窗時,用來繪製選取範圍的 SelectionFormat 物件。
實作
public function get inactiveSelectionFormat():SelectionFormat
public function set inactiveSelectionFormat(value:SelectionFormat):void
相關 API 元素
pointFormat | 屬性 |
pointFormat:flashx.textLayout.formats:ITextLayoutFormat
[唯讀] 將套用至插入文字的格式。TBD:需要擴充 pointFormat 以記住使用者樣式,並將使用點選取 leafFormat 值呼叫 IEditManager.undefineFormat 的格式解除定義。
實作
protected function get pointFormat():flashx.textLayout.formats:ITextLayoutFormat
textFlow | 屬性 |
textFlow:flashx.textLayout.elements:TextFlow
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
此選取管理員所管理的 TextFlow 物件。
選取管理員可管理單一文字流排。藉由設定 TextFlow 物件的 interactionManager
屬性,您也可以將選取管理員指定給文字流排。
實作
public function get textFlow():flashx.textLayout.elements:TextFlow
public function set textFlow(value:flashx.textLayout.elements:TextFlow):void
相關 API 元素
unfocusedSelectionFormat | 屬性 |
unfocusedSelectionFormat:SelectionFormat
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
當選取範圍不在具有焦點的容器但在作用中視窗時,用來繪製選取範圍的SelectionFormat 物件。
實作
public function get unfocusedSelectionFormat():SelectionFormat
public function set unfocusedSelectionFormat(value:SelectionFormat):void
相關 API 元素
windowActive | 屬性 |
SelectionManager | () | 建構函式 |
public function SelectionManager()
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
建立 SelectionManager 物件。
將 SelectionManager 物件指定給文字流排的 interactionManager
屬性,以啟用文字選取。
activateHandler | () | 方法 |
deactivateHandler | () | 方法 |
doOperation | () | 方法 |
public function doOperation(op:FlowOperation):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
執行 SelectionManager 作業 - 雖然可能無法修改流程,但是用戶端仍然可將之取消。
參數
op:FlowOperation |
editHandler | () | 方法 |
flushPendingOperations | () | 方法 |
focusChangeHandler | () | 方法 |
focusInHandler | () | 方法 |
public function focusInHandler(event:FocusEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 focusIn 事件。
參數
event:FocusEvent |
focusOutHandler | () | 方法 |
public function focusOutHandler(event:FocusEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 focusOut 事件。
參數
event:FocusEvent |
getCommonCharacterFormat | () | 方法 |
public function getCommonCharacterFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:TextLayoutFormat
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
取得指定文字範圍或目前選取範圍中所有字元都適用的字元格式特質。
在傳回的 TextLayoutFormat 實體中,會將指定元素範圍或選取範圍中所有字元都沒有相同值的格式特質設為 null
。
參數
range:flashx.textLayout.elements:TextRange (default = null ) — 要求一般特質的文字選擇性範圍。若為 null,則使用目前選項。
|
flashx.textLayout.formats:TextLayoutFormat — 一般字元樣式設定
|
範例 ( 如何使用本範例 )
var common:ITextLayoutFormat = textFlow.interactionManager.getCommonCharacterFormat();
getCommonContainerFormat | () | 方法 |
public function getCommonContainerFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:TextLayoutFormat
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
取得指定文字範圍或目前選取範圍中所有容器都適用的容器格式特質。
在傳回的 TextLayoutFormat 實體中,會將指定元素範圍或選取範圍中所有容器都沒有相同值的格式特質設為 null
。
參數
range:flashx.textLayout.elements:TextRange (default = null ) — 要求一般特質的文字選擇性範圍。若為 null,則使用目前選項。
|
flashx.textLayout.formats:TextLayoutFormat — 一般容器樣式設定
|
範例 ( 如何使用本範例 )
var common:ITextLayoutFormat = textFlow.interactionManager.getCommonContainerFormat();
getCommonParagraphFormat | () | 方法 |
public function getCommonParagraphFormat(range:flashx.textLayout.elements:TextRange = null):flashx.textLayout.formats:TextLayoutFormat
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
取得指定文字範圍或目前選取範圍中所有段落都適用的段落格式特質。
在傳回的 TextLayoutFormat 實體中,會將指定元素範圍或選取範圍中所有段落都沒有相同值的格式特質設為 null
。
參數
range:flashx.textLayout.elements:TextRange (default = null ) — 要求一般特質的文字選擇性範圍。若為 null,則使用目前選項。
|
flashx.textLayout.formats:TextLayoutFormat — 一般段落樣式設定
|
範例 ( 如何使用本範例 )
var common:ITextLayoutFormat = textFlow.interactionManager.getCommonParagraphFormat();
getSelectionState | () | 方法 |
public function getSelectionState():SelectionState
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
取得目前選取範圍的 SelectionState 物件。
傳回值SelectionState |
相關 API 元素
範例 ( 如何使用本範例 )
var selection:SelectionState = textFlow.interactionManager.getSelectionState();
hasSelection | () | 方法 |
public function hasSelection():Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
指出是否有選取範圍。
如果有範圍選取或點選取,則傳回 true
。最初設定選取管理員時,預設不會有選取範圍 (開始及結尾是 -1)。
Boolean |
範例 ( 如何使用本範例 )
var selection:SelectionState = textFlow.interactionManager.hasSelection();
imeStartCompositionHandler | () | 方法 |
isRangeSelection | () | 方法 |
public function isRangeSelection():Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
指出選取範圍是否涵蓋某範圍的文字。
如果選取範圍延伸超過單一位置,則傳回 true
。
Boolean |
範例 ( 如何使用本範例 )
var selection:SelectionState = textFlow.interactionManager.isRangeSelection();
keyDownHandler | () | 方法 |
public function keyDownHandler(event:KeyboardEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 keyDown 事件。
參數
event:KeyboardEvent |
keyFocusChangeHandler | () | 方法 |
public function keyFocusChangeHandler(event:FocusEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 keyFocusChange 事件。
參數
event:FocusEvent |
keyUpHandler | () | 方法 |
public function keyUpHandler(event:KeyboardEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 keyUp 事件。
參數
event:KeyboardEvent |
menuSelectHandler | () | 方法 |
public function menuSelectHandler(event:ContextMenuEvent):void
處理 menuSelect 事件。
參數
event:ContextMenuEvent |
mouseDoubleClickHandler | () | 方法 |
public function mouseDoubleClickHandler(event:MouseEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 mouseDoubleClick 事件。
參數
event:MouseEvent |
mouseDownHandler | () | 方法 |
public function mouseDownHandler(event:MouseEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 mouseDown 事件。
參數
event:MouseEvent |
mouseMoveHandler | () | 方法 |
public function mouseMoveHandler(event:MouseEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 mouseMove 事件。
參數
event:MouseEvent |
mouseOutHandler | () | 方法 |
public function mouseOutHandler(event:MouseEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 mouseOut 事件。
參數
event:MouseEvent |
mouseOverHandler | () | 方法 |
public function mouseOverHandler(event:MouseEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 mouseOver 事件。
參數
event:MouseEvent |
mouseUpHandler | () | 方法 |
public function mouseUpHandler(event:MouseEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 mouseUp 事件。
參數
event:MouseEvent |
mouseWheelHandler | () | 方法 |
notifyInsertOrDelete | () | 方法 |
public function notifyInsertOrDelete(absolutePosition:int, length:int):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
插入或刪除文字時,更新選取管理員。
變更文字流排中的文字時,作業必須呼叫 notifyInsertOrDelete
。選取管理員會依此調整索引型位置指示器。如果您建立新的 Operation 類別以直接變更文字流排中的文字 (不使用另一個作業),則您的作業必須呼叫此函數,才能維持最新的選取範圍。
參數
absolutePosition:int — 文字中進行變更的位置點。
| |
length:int — 可為正數或負數,表示要插入或刪除的字元數。
|
範例 ( 如何使用本範例 )
notifyInsertOrDelete()
方法的方式。
這個函數會取得 SpanElement的文字範圍,這是某些假設性作業的一部分。
import flashx.textLayout.elements.SpanElement; function doReplace( span:SpanElement, newText:String, relativeStart:int, relativeEnd:int ):void { span.replaceText( relativeStart, relativeEnd, newText ); var parentFlow:TextFlow = span.getTextFlow(); var lengthDifference:int = newText.length - (relativeEnd - relativeStart); parentFlow.interactionManager.notifyInsertOrDelete( span.getAbsoluteStart() + relativeStart, lengthDifference ); }
refreshSelection | () | 方法 |
public function refreshSelection():void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
重新顯示選取範圍形狀。
注意:您不需要直接呼叫此方法。一般會自動進行呼叫。
selectAll | () | 方法 |
selectRange | () | 方法 |
setFocus | () | 方法 |
setMouseCursor | () | 方法 |
setSelectionState | () | 方法 |
public function setSelectionState(sel:SelectionState):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
設定目前選取範圍的 SelectionState 物件。
參數
sel:SelectionState |
相關 API 元素
softKeyboardActivatingHandler | () | 方法 |
textInputHandler | () | 方法 |
public function textInputHandler(event:flash.events:TextEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
處理 TextEvent。
參數
event:flash.events:TextEvent |
此範例示範 SelectionManager
類別的使用方式。
它會設定一個 TextFlow 以及一個偵聽程式來偵聽選取範圍變更,然後根據選取範圍加以更新。
package flashx.textLayout.edit.examples { import flash.display.Sprite; import flashx.textLayout.container.ContainerController; import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.edit.SelectionManager; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.formats.ITextLayoutFormat; import flashx.textLayout.events.SelectionEvent; public class SelectionManager_example extends Sprite { private var textFlow:TextFlow; public function SelectionManager_example() { //define TextFlow, and make it read-select textFlow = TextConverter.importToFlow("This is sample text for the SelectionManager example.", TextConverter.PLAIN_TEXT_FORMAT); textFlow.interactionManager = new SelectionManager(); //compose TextFlow to display textFlow.flowComposer.addController(new ContainerController(this,600,600)); textFlow.flowComposer.updateAllControllers(); //add event handlers to the TextFlow to detect when selection changes textFlow.addEventListener(SelectionEvent.SELECTION_CHANGE, selectionChanged); } private function selectionChanged(selectionEvent:SelectionEvent):void { var format:ITextLayoutFormat = textFlow.interactionManager.getCommonCharacterFormat(); // do something here - perhaps update the application's UI based on the formatting // attributes applied in the current selected text range } } }
Tue Jun 12 2018, 03:47 PM Z