텍스트 선택 및 조작

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 속성 컬렉션을 적용하는 방법에 대한 자세한 내용은 텍스트 필드 내 텍스트 범위 서식 지정을 참조하십시오.