layer_sequence_destroy 함수 설명
layer_sequence_destroy 함수는 시퀀스 요소와 해당 시퀀스 인스턴스를 제거하는 기능을 제공합니다. 이 함수를 사용하면 특정 시퀀스 요소를 삭제할 수 있으며, 이때 시퀀스 인스턴스 구조체와 그 하위 구조체도 함께 해제됩니다. 그러나 변수에 할당된 하위 구조체는 자동으로 해제되지 않습니다. 또한, 시퀀스의 객체 트랙을 위해 생성된 모든 인스턴스도 삭제됩니다.
함수 문법
layer_sequence_destroy(sequence_element_id)
매개변수 설명
| 매개변수 | 유형 | 설명 |
|---|---|---|
| sequence_element_id | Sequence Element ID | 삭제할 시퀀스 요소의 고유 ID 값 |
반환값
- N/A
활용 예제
예제 1: 모든 시퀀스 요소 제거하기
var a = layer_get_all_elements(layer);
for (var i = 0; i < array_length(a); i++;){
if layer_get_element_type(a[i]) == layerelementtype_sequence {
layer_sequence_destroy(a[i]);
}
}
위 코드는 현재 인스턴스의 레이어에 할당된 모든 요소의 ID를 가져옵니다. 그런 다음 반환된 요소 중 시퀀스 자산이 있는지 확인하고, 있다면 해당 요소를 삭제합니다.
예제 2: 특정 시퀀스의 트랙 구조체 저장 후 제거하기
var a = layer_get_all_elements(layer);
var track_struct;
for (var i = 0; i < array_length(a); i++;){
if layer_get_element_type(a[i]) == layerelementtype_sequence {
var ins = layer_sequence_get_instance(a[i]);
track_struct = ins.activeTracks[0];
layer_sequence_destroy(a[i]);
}
}
show_debug_message(track_struct);
위 코드는 현재 인스턴스의 레이어에 할당된 모든 요소의 ID를 가져옵니다. 반환된 요소 중 시퀀스 자산이 있는지 확인한 후, 해당 인스턴스 구조체를 가져옵니다. 다음으로 activeTracks 배열의 첫 번째 요소를 임시 변수 track_struct에 할당하고 시퀀스를 삭제합니다. 모든 시퀀스 요소를 처리한 후, track_struct의 내용을 디버그 메시지로 표시합니다. 시퀀스가 삭제되었지만, track_struct는 마지막으로 만난 시퀀스 인스턴스의 첫 번째 트랙 구조체를 여전히 포함하고 있습니다.