TextArea 구성 요소는 기본 ActionScript TextField 객체의 래퍼입니다. TextArea 구성 요소를 사용하여 텍스트를 표시할 수 있으며,
editable
속성이
true
인 경우에는 텍스트를 입력하고 편집할 수도 있습니다. 이 구성 요소는 여러 행의 텍스트를 표시하거나 받을 수 있으며
wordWrap
속성이
true
로 설정된 경우 긴 텍스트를 줄 바꿈할 수 있습니다.
restrict
속성을 사용하면 사용자가 입력할 수 있는 문자를 제한할 수 있으며
maxChars
를 사용하면 사용자가 입력할 수 있는 최대 문자 수를 지정할 수 있습니다.
horizontalScrollPolicy
및
verticalScrollPolicy
속성이
off
가 아닌 경우 텍스트가 텍스트 영역의 가로 또는 세로 경계를 초과하면 자동으로 가로 또는 세로 스크롤 막대가 나타납니다.
여러 행 텍스트 필드가 필요한 모든 위치에 TextArea 구성 요소를 사용할 수 있습니다. 예를 들어, 양식에서 TextArea 구성 요소를 주석 필드로 사용할 수 있습니다. 이 경우 사용자가 Tab 키를 눌러 필드 밖으로 이동할 때 필드가 비어 있는지 확인하는 리스너를 설정할 수 있습니다. 이 리스너는 필드가 비어 있으면 해당 필드에 주석을 입력해야 한다는 오류 메시지를 표시합니다.
한 행으로 된 텍스트 필드가 필요하면 TextInput 구성 요소를 사용하십시오.
TextArea 인스턴스에 나타나는 텍스트의 스타일을 변경하는
setStyle()
메서드를 사용하여
textFormat
스타일을 설정할 수 있습니다. 또한 ActionScript에서
htmlText
속성을 사용하면 TextArea 구성 요소에 HTML 서식을 지정할 수 있으며
displayAsPassword
속성을
true
로 설정하면 텍스트를 별표로 가릴 수 있습니다.
condenseWhite
속성을
true
로 설정하면 새 텍스트에서 공백, 줄 바꿈 등과 같은 불필요한 공백이 제거됩니다. 이 속성은 컨트롤의 기존 텍스트에는 영향을 주지 않습니다.
TextArea 구성 요소와 사용자의 상호 작용
응용 프로그램 내에서 TextArea 구성 요소를 활성화하거나 비활성화할 수 있습니다. 비활성화된 상태에서 TextArea는 마우스 또는 키보드 입력을 수신하지 못합니다. 활성화된 상태에서는 ActionScript TextField 객체와 마찬가지로 포커스, 선택 및 탐색 규칙을 따릅니다. TextArea 인스턴스에 포커스가 있으면 다음 키를 사용하여 해당 인스턴스를 제어할 수 있습니다.
키
|
설명
|
화살표 키
|
텍스트를 편집할 수 있는 경우 텍스트 내에서 삽입점을 위, 아래, 왼쪽 또는 오른쪽으로 이동합니다.
|
Page Down
|
텍스트를 편집할 수 있는 경우 삽입점을 텍스트 끝으로 이동합니다.
|
Page Up
|
텍스트를 편집할 수 있는 경우 삽입점을 텍스트 처음으로 이동합니다.
|
Shift+Tab
|
탭 루프의 이전 객체로 포커스를 이동합니다.
|
탭
|
탭 루프의 다음 객체로 포커스를 이동합니다.
|
포커스 제어에 대한 자세한 내용은 Flash Professional용
ActionScript 3.0 참조 설명서
의 FocusManager 클래스 및
FocusManager를 사용한 작업
을 참조하십시오.
TextArea 구성 요소 매개 변수
속성 관리자나 구성 요소 관리자에서 각 TextArea 구성 요소 인스턴스에 대해
condenseWhite
,
editable
,
hortizontalScrollPolicy
,
maxChars
,
restrict
,
text
,
verticalScrollPolicy
,
wordwrap
등의 제작 매개 변수를 설정할 수 있습니다. 이러한 매개 변수에는 각각 같은 이름의 해당 ActionScript 속성이 있습니다. 이러한 매개 변수의 가능한 값에 대한 자세한 내용은
ActionScript 3.0 Reference
for Flash Professional
에서 TextArea 클래스를 참조하십시오.
각 TextArea 인스턴스의 실시간 미리 보기에는 제작하는 동안 속성 관리자나 구성 요소 관리자에서 변경한 매개 변수가 반영됩니다. 스크롤 막대가 필요한 경우에는 스크롤 막대가 실시간 미리 보기에 표시되지만 작동하지는 않습니다. 실시간 미리 보기에서는 텍스트를 선택할 수 없으며 스테이지에서 구성 요소 인스턴스에 텍스트를 입력할 수도 없습니다.
ActionScript를 작성하면 속성, 메서드 및 이벤트를 사용하여 TextArea 구성 요소에 대한 이러한 옵션 및 추가 옵션을 제어할 수 있습니다. 자세한 내용은
ActionScript 3.0 Reference
for Flash Professional
에서 TextArea 클래스를 참조하십시오.
TextArea 구성 요소를 사용하여 응용 프로그램 만들기
다음 절차에서는 응용 프로그램을 제작하는 동안 TextArea 구성 요소를 추가하는 방법을 설명합니다. 이 예제에서는 인터페이스의 다른 영역으로 포커스를 이동하기 전에 사용자가 텍스트 영역에 내용을 입력했는지 확인하는
focusOut
이벤트 핸들러를 TextArea 인스턴스에 설정합니다.
-
새 Flash 문서(ActionScript 3.0)를 만듭니다.
-
[구성 요소] 패널의 TextArea 구성 요소를 스테이지로 드래그하고 인스턴스 이름을
aTa
로 지정합니다. 매개 변수 설정은 기본 설정을 유지합니다.
-
[구성 요소] 패널에서 두 번째 TextArea 구성 요소를 스테이지로 드래그하여 첫 번째 구성 요소 아래에 배치하고 인스턴스 이름을
bTa
로 지정합니다. 매개 변수 설정은 기본 설정을 유지합니다.
-
[액션] 패널을 열고 기본 타임라인에서 프레임 1을 선택한 후 다음 ActionScript 코드를 입력합니다.
import flash.events.FocusEvent;
aTa.restrict = "a-z,'\" \"";
aTa.addEventListener(Event.CHANGE,changeHandler);
aTa.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, k_m_fHandler);
aTa.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, k_m_fHandler);
function changeHandler(ch_evt:Event):void {
bTa.text = aTa.text;
}
function k_m_fHandler(kmf_event:FocusEvent):void {
kmf_event.preventDefault();
}
이 예제에서는
aTa
텍스트 영역에 입력할 수 있는 문자를 소문자, 쉼표, 아포스트로피 및 공백으로 제한합니다. 또한
aTa
텍스트 영역에서
change
,
KEY_FOCUS_CHANGE
및
MOUSE_FOCUS_CHANGE
이벤트에 대한 이벤트 핸들러를 설정합니다.
changeHandler()
함수는
change
이벤트가 발생할 때마다
aTa.text
를
bTa.text
에 지정하여
aTa
텍스트 영역에 입력한 텍스트가 자동으로
bTa
텍스트 영역에 나타나게 합니다.
KEY_FOCUS_CHANGE
및
MOUSE_FOCUS_CHANGE
이벤트의
k_m_fHandler()
함수는 아무 텍스트도 입력하지 않은 상태에서 Tab 키를 눌러 다음 필드로 이동하지 못하게 합니다. 이를 위해 기본 비헤이비어를 동작하지 않게 합니다.
-
[컨트롤] > [무비 테스트]를 선택합니다.
아무 텍스트도 입력하지 않고 Tab 키를 눌러 포커스를 두 번째 텍스트 영역으로 이동하면 오류 메시지가 나타나고 포커스가 첫 번째 텍스트 영역으로 돌아가야 합니다. 첫 번째 텍스트 영역에 텍스트를 입력하면 두 번째 텍스트 영역에 해당 텍스트가 복사되어야 합니다.
ActionScript를 사용하여 TextArea 인스턴스 만들기
다음 예제에서는 ActionScript를 사용하여 TextArea 구성 요소를 만듭니다. 또한
condenseWhite
속성을
true
로 설정하여 불필요한 공백을 제거한 후 HTML 텍스트 서식 특성을 이용할 수 있도록
htmlText
에 텍스트를 지정합니다.
-
새 Flash(ActionScript 3.0) 문서를 만듭니다.
-
TextArea 구성 요소를 [라이브러리] 패널로 드래그합니다.
-
[액션] 패널을 열고 기본 타임라인에서 프레임 1을 선택한 후 다음 ActionScript 코드를 입력합니다.
import fl.controls.TextArea;
var aTa:TextArea = new TextArea();
aTa.move(100,100);
aTa.setSize(200, 200);
aTa.condenseWhite = true;
aTa.htmlText = '<b>Lorem ipsum dolor</b> sit amet, consectetuer adipiscing elit. <u>Vivamus quis nisl vel tortor nonummy vulputate.</u> Quisque sit amet eros sed purus euismod tempor. Morbi tempor. <font color="#FF0000">Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.</font> Curabitur diam. Suspendisse at purus in ipsum volutpat viverra. Nulla pellentesque libero id libero.';
addChild(aTa);
이 예제에서는
htmlText
속성을 사용하여 텍스트 블록에 HTML 굵은 글꼴 및 밑줄 특성을 적용하고
a_ta
텍스트 영역에 해당 텍스트 블록을 표시합니다. 또한
condenseWhite
속성을
true
로 설정하여 텍스트 블록 내의 필요 없는 공백을 제거합니다.
setSize()
메서드는 텍스트 영역의 높이와 폭을 설정하고
move()
메서드는 텍스트 영역의 위치를 설정합니다.
addChild()
메서드는 TextArea 인스턴스를 스테이지에 추가합니다.
-
[컨트롤] > [무비 테스트]를 선택합니다.
|
|
|