I think the problem is that you're treating desktopx.object.children as if it were a single object.
the desktopx.objects.item(3) relates to a specific object in the list of desktopx objects.
on the other hand,
desktopx.object("whatever the object name is").children refers to a group of objects that are children of the object.
IF you want to reference a specific object from one of the children (lets say the third object or the object named "this one" you could reference it a couple of different ways-- I use for loops
for example (<----HA! get it?)
for each elem in desktopx.object("whatever the object name is").children
if elem.name = "this one" then
obj = elem
NOW you can reference whatever object you wanted to before using;
DesktopX.ScriptObject( obj.name ).Animate(elapsedTime) <<--- !! the issue i have in in this line !!
elapsedTime = elapsedTime+1
activeIcon = activeIcon+1
Pretty sure that will work, but if it doesn't, try first creating another variable and set it to obj.name (exaample: variable = obj.name) and use that in place of obj.name in desktopx.scriptobject(variable).animate(elapsedtime)
(vbasic is pretty finicky about strings for some reason)
Hope that helps,
EDIT: forgot to mention: as far as I know, desktopx.object.children does not support the item system like desktopx.objects does.
Also, some properties of the variable "elem" in my for loop:
in this, elem acts as the object you're referencing-- meaning you can say anything after it that you can say after object. and you can apply things to it that will edit the object it refers to directly.
For efficiency, I recommend putting the for loop OUTSIDE of the timer subroutine, to avoid unnecessarily counting all children on each timer hit.