我试着帮你翻译一下这个内容:
我正在尝试创建一个关卡选择菜单,但是一旦关卡数量超过了我能手动管理的范围,我就想通过代码来生成它们。问题是,新UI面板的代码看起来很不直观,而且似乎没有办法使用html id来样式化所有元素。 我尝试通过复制Reddit上找到的代码片段,并将其放入for循环中(这就是为什么有很多注释的原因)。
for(var i = 1; i <= 5; i++){
var _uiLayerNode = layer_get_flexpanel_node("levels");
var _tela = flexpanel_node_get_child(_uiLayerNode,"tela");
// Create struct for flexpanel node's layerElements array
var _structInstance = {
type: "Instance",
instanceObjectIndex: obj_nivel,
instanceColour: -1,
}
// Create struct for flexpanel node
var _struct = {
layerElements: [_structInstance],
};
// Create a flexpanel node using our struct
var _node = flexpanel_create_node(_struct);
// Add a node as a child to the uiLayer (IMPORTANT! The object instance isn't actually accessible until after the node has been added to a UI layer)
flexpanel_node_insert_child(_tela, _node, 0);
// Get a reference to the instance on the ui layer
var _instance = flexpanel_node_get_struct(flexpanel_node_get_child(_tela,i-1)).layerElements[0].instanceId;
// Modify instance's variables
_instance.image_index = i;
}
它在某种程度上是成功的,因为它能够输出5个同样的面板,但修改图片索引的部分并没有生效。它应该显示5个标签“1 2 3 4 5”,但实际上显示的是“1 1 1 1 5”。我完全不知道自己在做什么。是否有更简单的方法来实现这个功能?另外,如何样式化所有这些flexpanel以使它们具有相同的边距和对齐方式?
评论 (0)