使用Lua索引XML对象

时间:2013-09-11 22:25:37

标签: xml lua

我目前有一堆类似于

的盒子
<Texture name="uiBox01">
    *Other content*
</Texture>

这持续了18个盒子(uiBox18)。在Lua中,我能够通过

引用boss并改变其颜色
uiBox01:SetVertexColor(r,g,b)

问题是我可能需要或不需要更多的操作盒。给定的操作可以在第一次通过时使用2个盒子,在下一次通过时可以使用8个盒子因此,它需要是动态的而不是静态的。

最终我想使用Lua这样的数组

uiBox[1] = uiBox01 --something similar to this

这样我就可以更有效地指定下一个索引。任何帮助将不胜感激!

编辑:使用的XML是WoW UI XML,它与基本XML非常相似。

1 个答案:

答案 0 :(得分:0)

我不确定我的问题是否正确。我假设你想要做的是能够使用数组中的索引来引用一个框,而不是变量名。

i=5  -- set from somewhere,maybe a loop
-- after some time
myBox = boxes[i]

我不熟悉WoW,但我认为uiBox01是WoW以某种方式创建的全局变量。

在Lua中,全局变量存储在_G数组中,index是变量的名称。所以

uiBox01 == _G['uiBox01']  -- returns true

以下必须为您服务

i=5  -- set from somewhere,maybe a loop
-- after some time
myBox = _G['uiBox'..i]

如果i是单个数字,则扩展它以处理前缀零

i=5  -- set from somewhere,maybe a loop
-- after some time
myBox = _G['uiBox'.. (i < 10 and '0' or '' ) .. i] -- concatenate zero in middle if i<10

如果您正在寻找其他内容,请告诉我。