Adding menu items dynamically help

Desired functionality:

  1. An XML list, which works just fine, retrieves between 3 and 15 strings (or menu names). These menu names are put into an array called, “aGalleryMenuID”.
  2. I want to be able to create a MovieClip and TextField dynamically for each string and place them on the stage dynamically. So if there are only 5, it will make five. 3 will only make 3. The long way of doing this is to create 15 MovieClips and 15 TextFields and use a loop to use addChild. This is okay, but what if later it is decided there needs to be 30 menu items. I want to avoid that and make this future proofed.

for loop that loops through the # of array items in aGalleryMenuID
set the MovieClip’s name to a unique identifier
set the TextField’s name to a unique identifier
set the TextField’s text to the arrays string that corresponds with the loop’s iteration
addChild the MovieClip to the stage
addChild the TextField to the MovieClip
populate an array that will hold the MovieClip’s identifier for future use like adding and deleting

  1. The result is it loops through, creates the assets, but overwrites each one so as to only show the last MovieClip and TextField

  var aGalleryMenuID:Array = ["one", "two", "three", "four", "five"];
var mc:MovieClip = new MovieClip();
var mt:TextField = new TextField();
var textsX:uint = 0;
var clips:Array = new Array();
for (var i:int = 0; i < aGalleryMenuID.length; i++) {
    var newTextName:String = "mt"+i;
    var newMCName:String = "mc"+i;
    mc.x = textsX;
    mc.name = newMCName;
    mt.name = newTextName;
    mt.text = aGalleryMenuID*;
    addChild(mc);
    mc.addChild(mt);
    clips* = mc;
    textsX += (clips*.width + 10)                        
}

//result: only shows the last menu item “five”, the others do not show. The clips Array populates mc0, mc1, mc2, mc3, mc4. Why do mc0-mc3 dissappear?