包 | 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 | |
向左箭头 | previousCharacter | previousWord | previousWord | nextCharacter | nextWord | nextWord | nextLine | endOfDocument | endOfParagraph | nextLine | endOfDocument | endOfParagraph |
向上箭头 | previousLine | startOfDocument | startOfParagraph | previousLine | startOfDocument | startOfParagraph | previousCharacter | previousWord | previousWord | nextCharacter | nextWord | nextWord |
向右箭头 | nextCharacter | nextWord | nextWord | previousCharacter | previousWord | previousWord | previousLine | startOfDocument | startOfParagraph | previousLine | startOfDocument | startOfParagraph |
向下箭头 | 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 中逻辑顺序的上一个和下一个 - 在从右至左的文本中的效果是选定内容按照物理方向移动
相关 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, 11:04 AM Z