flexpanel_node_insert_child 함수 설명
flexpanel_node_insert_child
함수는 두 번째 인자인 node
를 첫 번째 인자인 root
의 자식으로 삽입하는 기능을 제공합니다. 이 함수는 자식 노드가 부모의 계층 구조에서 어디에 위치할지를 결정하는 인덱스를 요구합니다. 이 인덱스는 자식 노드의 레이아웃 위치에 영향을 미치며, 자식의 위치 유형이 절대적이지 않은 경우에만 적용됩니다. 인덱스는 0부터 시작해야 하며, 음수이거나 부모 노드의 자식 수보다 클 수 없습니다. 이 인덱스 값을 사용하여 나중에 flexpanel_node_get_child
를 통해 부모로부터 자식 노드를 검색할 수 있습니다.
문법
flexpanel_node_insert_child(root, node, index);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
root | Flex Panel Node | 삽입할 부모 노드 |
node | Flex Panel Node | 삽입할 자식 노드 |
index | Real | 부모 내 자식의 인덱스 (예: 0, 1, 2 등) |
반환값
N/A
예제
n_root = flexpanel_create_node({left: 20, top: 20, width: 400, height: 600, flexDirection: "column", padding: 20, gapRow: 10, alignItems: "flex-end"});
var i = 0;
repeat (6) {
flexpanel_node_insert_child(n_root, flexpanel_create_node({width: "70%", height: 100, flexShrink: 1}), i);
i++;
}
위의 예제는 루트 노드를 생성한 후, repeat
루프를 실행하여 여러 개의 자식 노드를 루트 노드에 삽입합니다.
활용 예제
- 동적 UI 구성
gml var panel = flexpanel_create_node({width: 500, height: 500}); for (var j = 0; j < 5; j++) { var child = flexpanel_create_node({width: "80%", height: 50}); flexpanel_node_insert_child(panel, child, j); }
- 조건에 따른 자식 노드 삽입
gml var parent = flexpanel_create_node({}); var condition = true; if (condition) { flexpanel_node_insert_child(parent, flexpanel_create_node({}), 0); }
- 사용자 입력에 따른 자식 추가
gml var userPanel = flexpanel_create_node({}); var userInputCount = get_user_input(); // 사용자로부터 입력받은 수 for (var k = 0; k < userInputCount; k++) { flexpanel_node_insert_child(userPanel, flexpanel_create_node({}), k); }
- 자식 노드의 순서 변경
gml var mainPanel = flexpanel_create_node({}); for (var l = 0; l < 3; l++) { flexpanel_node_insert_child(mainPanel, flexpanel_create_node({}), l); } flexpanel_node_insert_child(mainPanel, flexpanel_create_node({}), 1); // 인덱스 1에 추가
- 비율에 따른 자식 노드 크기 조정
gml var ratioPanel = flexpanel_create_node({}); for (var m = 0; m < 4; m++) { var width = (m + 1) * 25; // 25%씩 증가 flexpanel_node_insert_child(ratioPanel, flexpanel_create_node({width: width + "%", height: 100}), m); }