选择和操作文本

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

您可以选择动态文本或输入文本。由于 TextField 类的文本选择属性和方法使用索引位置来设置要操作的文本的范围,因此即使不知道内容,您也可以以编程方式选择动态文本或输入文本。

注: 在 Flash Professional 中,如果对静态文本字段选择了可选选项,则导出并置于显示列表中的文本字段为常规的动态文本字段。

选择文本

默认情况下, flash.text.TextField.selectable 属性为 true ,您可以使用 setSelection() 方法以编程方式选择文本。

例如,您可以将某个文本字段中的特定文本设置成用户单击该文本字段时处于选定状态:

var myTextField:TextField = new TextField(); 
myTextField.text = "No matter where you click on this text field the TEXT IN ALL CAPS is selected."; 
myTextField.autoSize = TextFieldAutoSize.LEFT; 
addChild(myTextField); 
addEventListener(MouseEvent.CLICK, selectText); 
 
function selectText(event:MouseEvent):void 
{ 
    myTextField.setSelection(49, 65); 
}

同样,如果您想让文本字段中的文本一开始显示时就处于选定状态,可以创建一个在向显示列表中添加该文本字段时调用的事件处理函数。

捕获用户选择的文本

TextField 的 selectionBeginIndex selectionEndIndex 属性可用于捕获用户当前选择的任何内容,这两个属性为“只读”属性,因此不能设置为以编程方式选择文本。此外,输入文本字段也可以使用 caretIndex 属性。

例如,以下代码将跟踪用户所选文本的索引值:

var myTextField:TextField = new TextField(); 
myTextField.text = "Please select the TEXT IN ALL CAPS to see the index values for the first and last letters."; 
myTextField.autoSize = TextFieldAutoSize.LEFT; 
addChild(myTextField); 
addEventListener(MouseEvent.MOUSE_UP, selectText); 
 
function selectText(event:MouseEvent):void 
{ 
    trace("First letter index position: " + myTextField.selectionBeginIndex); 
    trace("Last letter index position: " + myTextField.selectionEndIndex); 
}

您可以对所选内容应用 TextFormat 对象属性的集合来更改文本的外观。有关将 TextFormat 属性的集合应用于选定文本的详细信息,请参阅 设置文本字段内文本范围的格式