안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘은 맥스 스크립트에서 문자열을 입력받을 수 있는 edittext에 대해서 이야기해 보겠습니다.
edittext <name> [<caption>] [text:<string>] [fieldWidth:<integer>] [height:<integer>] [bold:<boolean>] [labelOnTop:<boolean>] [readOnly:<boolean>]
[text:<string>] : edittext가 생성될때 기본적으로 적혀있는 텍스트입니다.
[fieldWidth:<integer>] : 문자열이 적힐 부분의 길이 값입니다.(픽셀 단위)
[height:<integer>] : 문자열이 적힐 부분의 높이 값입니다.(픽셀 단위)
[bold:<boolean>] : 문자열의 굵기입니다.
[labelOnTop:<boolean>] : edittext의 제목을 위에 위치할지를 정합니다.
[readOnly:<boolean>] : 직접 작성을 할 수 없고 읽을 수 있게만 합니다.
여러 가지 설명이 있는데 직접 만들어 봅시다.
1
2
3
4
5
6
|
rollout testRoll "Test!"
(
edittext text1_edt "exittext1" text:"에디트텍스트1" fieldWidth:100 height:20 bold:true
edittext text2_edt "exittext2" text:"에디트텍스트2" fieldWidth:100 height:20 labelOnTop:true readOnly:true
)
createdialog testRoll
|
cs |
위 이미지와 같게 나오셨나요?
스크립트의 내용에 대해서 확인해 봅시다.
edittext text1_edt "exittext1" text:"에디트텍스트1" fieldWidth:100 height:20 bold:true
edittext를 만들 때 text1_edt로 이름을 정하고,
제목은 exittext1로 했습니다.(오타가 났네요. ㅎㅎ)
생성될 때 기본적으로 '에디트텍스트1'이라고 적히도록 했으며
텍스트가 입력될 크기는 100 * 20으로 했고
글자는 굵게 했습니다.
edittext text2_edt "exittext2" text:"에디트텍스트2" fieldWidth:100 height:20 labelOnTop:true readOnly:true
edittext를 만들 때 조건은 텍스트가 입력될 크기까지 비슷하게 했습니다.
제목을 옆으로 놓지 않고 위에 올려놓았습니다.
그리고 수정을 할 수 없도록 readOnly를 true로 했습니다.
다음으로 이벤트에 대해서 알아보도록 합시다.
on <edittext> changed <arg> do <expr>
edittext의 내용이 바뀔 때마다 이벤트가 발생합니다.
on <edittext> entered <arg> do <expr>
edittext의 내용 변경이 완료되어 커서가 edittext밖으로 나가면 이벤트가 발생합니다.
이제 대충 어떤 방식인지 이해가 되시나요?
여러분의 예상이 맞는지 확인해 볼까요?
다음과 같이 입력하고 실행을 해봅시다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
rollout testRoll "Test!"
(
edittext text1_edt "exittext1" text:"에디트텍스트1" fieldWidth:100 height:60 bold:true
edittext text2_edt "exittext2" text:"에디트텍스트2" fieldWidth:100 height:20 labelOnTop:true readOnly:true
on text1_edt changed txt do
(
format "%\n" txt
)
on text1_edt entered txt do
(
format "entered!!\n"
)
)
createdialog testRoll
|
cs |
(text1_edt의 높이를 60으로 변경했습니다.)
다음과 같이 실행이 되었나요?
exittext1에 1234를 입력하고 엔터를 친 후 abcd를 입력한 후 MAXScript Listener를 확인해 봅시다.
한 글자씩 입력할 때마다 변경된 내용이 출력이 됩니다.
엔트를 누르자 2줄로 인식해서 2줄씩 변경된 내용이 출력됩니다.
여기서 'enteredon text1_edt entered txt do' 이벤트가 발동을 하지 않았다는 것을 아실 수 있습니다.
entered는 엔터키가 눌렸다는 의미가 아니라 입력을 마쳐서 커서가 빠져나갔을 때를 의미합니다.
마우스를 이동하여 exittext2에서 클릭해 봅시다.
마지막 줄에 entered!!라는 문자가 출력됩니다.
오늘은 edittext에 대해서 알아보았습니다.
저는 그다지 자주 사용하는 기능이지만 파일이나 오브젝트를 생성할 때 원하는 이름으로 정할 때 사용했던 기능입니다.
다음으로는 Slider에 대해서 이야기해 보겠습니다.
'맥스스크립트 기본' 카테고리의 다른 글
UI(13) Dropdownlist (2) | 2019.08.09 |
---|---|
UI(12) MultiListbox (0) | 2019.08.08 |
UI(12) Listbox (9) | 2019.08.07 |
UI(11) Slider (2) | 2019.08.06 |
UI(9) radiobuttons (0) | 2019.08.04 |
UI(8) checkbutton의 이벤트 (0) | 2019.08.01 |
UI(7) checkbutton의 문법 (0) | 2019.07.31 |
UI(7) checkbox (0) | 2019.07.29 |