...what does it buy me over just using a 3D array such that one index is the Object.UID, the second dimension is the variable name, and the third is the value?
That's not the way, arrays work. An array is just a line of cells, and you access those cells by using coordinates. Whatever count of coordinates you have, it leads to exactly one cell.
<img src="http://www.kevblog.co.uk/blog/97/as3_2D_3D_arrays.gif" border="0">
<img src="http://www.codeproject.com/KB/cs/Arrays-dontumindit/array9.gif" border="0">
So, to access the data you need to do something like this: var = array(2, 1, 4)
To store a value it is: array(2, 1, 4) = "one cell"
(Just pseudo code in the following text)
The basic idea of object oriented programming is to get rid of these limitations. With s, for example, you create a prototype of your very own data structure, a so called template:
- 'visual' as objecttype, default mySprite
- 'hp' as number, default 100
- 'speed' as number, default 150
- 'name' as string, default "Lion"
- 'strength' as number, default 200
- 'animal' as super, default "lifeform"
Adding as many 'animal' to "animals" as you like, you can access them and their properties in various ways, e.g. Textbox.Text = "animals".'animal'(1).'name'
You can go as deep in this tree, as you want to. For example, you could have another super "world", where you store "animals" among others. But still, you access everything as easy as Textbox.Text = "world"."animals"(2).'animal'(1).'name'
You would also do the complete managing with s, it is not just an array of data. You can create objects, load and save every bit of data, including spatial data from your objects, and so on.
There is a lot more, but as I said, 's' is quite complex, and you would need to be familiar with object oriented programming, but that is true for everything, which should work the way you want to have it working.
You can try to make it work without Python (an object oriented programming language) or s, but it will be a pain, with a lot of workarounds involved.