안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
지난번에 이어 Callback에 대해 설명을 하겠습니다.
오늘 배워볼 내용은 실행된 Callback을 삭제하는 방법입니다.
Callback이 자동으로 실행되는것은 좋은데 원치 않는 경우에도 실행이 되어 반대로 번거로운 경우가 종종 발생합니다. 이럴 때는 실행된 Callback을 삭제해야 하는데요. 다음과 같은 명령어로 삭제를 할 수 있습니다.
Removing Callbacks
callbacks.removeScripts [<callback_type_name>] [id:<name>] callbacks.removeScripts는 callback을 removeScripts명령을 사용하여 지운다는 의미입니다.[<callback_type_name>]은 callback을 생성할 때 사용했던 callback의 형태명 입니다.[id:<name>]은 callback을 생성할 때 사용했던 id명 입니다.이전 시간에 만들었던 callback 지워 보도록 하겠습니다.
MaxScript Editor를 열고 다음과 같이 입력해 봅시다.(우선 이전 시간에 만들었던 callback를 실행하여 작동되도록 해줍니다.)
1
|
callbacks.removeScripts #animateOn id:#myanimationOn
|
cs |
이전에는 분명히 Auto key를 누르면 메시지 박스가 떴는데 이제는 삭제되었습니다.
잘 작동이 되었다면 사용한 명령어를 확인해 봅시다.
callbacks.removeScripts는 위에 설명한 의미 그대로이고,
뒤에 따라오는 #animateOn은 형식이 #animateOn인 callback를
id:#myanimationOn은 사용자가 정의한 id명을 사용하여 삭제를 합니다.
조건이 두 개 붙었는데 사실
callbacks.removeScripts #animateOn
callbacks.removeScripts id:#myanimationOn
이라고 적어도 동일한 결과를 보여줍니다.
차이점은 id명을 사용하여 삭제를 할 경우 같은 id명을 가지고 있는 여러 개의 callback들이 한꺼번에 지워진다는 것입니다.
물론 위에 작업한 것 같이 둘 다 써도 문제는 없습니다.(둘 다 쓰면 id명을 기준으로 삭제를 합니다.)
그럼 정말 id명을 썼을 때 한꺼번에 지워지는지 확인해 보겠습니다.
MaxScript Editor를 열고 다음과 같이 입력해 봅시다.
1
2
3
4
5
6
7
8
9
10
11
12
|
fn messgebox_fn =
(
messagebox "animation On"
)
fn messgebox2_fn =
(
messagebox "animation Off"
)
callbacks.addScript #animateOn "messgebox_fn()" id:#myanimationOn
callbacks.addScript #animateOff "messgebox2_fn()" id:#myanimationOn
|
cs |
이번에는 두 개의 callback을 사용했습니다.
하나는 Animation이 On이 되면 메시지 박스가 열리고 Off가 되어도 다른 하나가 열리게 했습니다.
잘 동작하는지 실행해 봅시다.
On과 Off때 맞춰서 잘 동작을 합니다.
같은 내용이기 때문에 따로 내용에 대해서는 설명하지 않겠습니다.
그럼 id명을 사용하여 한 번에 삭제되는지 확인해 보겠습니다.
MaxScript Editor를 열고 다음과 같이 입력해 봅시다.
1
|
callbacks.removeScripts id:#myanimationOn
|
cs |

모든 Callback들이 잘 삭제된 것 같네요.
다른 방법으로 모든 callback을 한꺼번에 지우는 방법은
callbacks.removeScripts()
를 사용하면 됩니다.
단 맥스가 기본적으로 실행해놓은 callback까지 모두 삭제해 버리기 때문에 관련 내용을 확인하고 사용하셔야 합니다.
이것으로 Callback의 삭제와 관련된 내용에 대해서 설명을 마치겠습니다.
조금 더 자세한 내용은 맥스 핼퍼에서 General Event Callback Mechanism 부분을 참고하시면 됩니다.
다음에도 callback에 대한 내용을 설명하도록 하겠습니다.
'맥스스크립트 기본' 카테고리의 다른 글
Callback(6) : File Notifications(1) (0) | 2021.02.03 |
---|---|
Callback(5) : Animation / Direct3D / FileLink Device Notification (0) | 2021.02.02 |
Callback(4) :콜백 이벤트 명과 notificationParam 반환(ActionItem) (0) | 2021.02.01 |
Callback(3) : 확인 (0) | 2021.01.31 |
Callback(1) : 소개와 추가 (0) | 2021.01.29 |
Wire Parameter(2) (0) | 2019.12.17 |
Wire Parameter(1) (0) | 2019.12.16 |
Constraints - Path(5) (0) | 2019.11.29 |