選取和處理文字

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 selectionBeginIndexselectionEndIndex 是「唯讀」屬性,因此無法設定為透過程式設計方式選取文字,但可以用來擷取使用者目前已選取的項目。此外,輸入文字欄位可以使用 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 屬性集合套用至所選取文字的詳細資訊,請參閱格式化文字欄位內的文字範圍