Подгружаю XML, создаю пункты меню через duplicateMovieClip.

Код AS1/AS2:
var leftmenu:XML = new XML();
leftmenu.ignoreWhite = true;
leftmenu.load('menu.xml');
leftmenu.onLoad = function() {
pun = this.childNodes[0].childNodes.length;
for (i=0; i<pun; i++) {
menu_main.bt.duplicateMovieClip('bt'+i, _root.menu_main.getNextHighestDepth());
_root.menu_main['bt'+i]._alpha = 100;
_root.menu_main['bt'+i].bt_bg._alpha = 10;
_root.menu_main['bt'+i]._y += i*41;
_root.menu_main['bt'+i].t = this.childNodes[0].childNodes[i].childNodes[0].firstChild;
_root.menu_main['bt'+i].punkt.text = _root.menu_main['bt'+i].t;
_root.menu_main['bt'+i].link = this.childNodes[0].childNodes[i].childNodes[1].firstChild;
_root.menu_main['bt'+i].pos=i;
_root.menu_main['bt'+i].onPress = function() {
uroven(leftmenu.childNodes[0].childNodes[this.pos],pun);
};
};
menu_main.bt.unloadMovie();
};
Далее при нажатии на пункт меню, я проверяю реверсивной функцией uroven(); количество чайлдов. Если есть подменю, то мне нужно имеющиеся пункты заменить пунктами подменю.
Я пытался это реализовать через removeMovieClip, а потом таким же образом считывать и дублировать чайлды подменю. А далее проверка реверсивной uroven(); следующего уровня и тд.
Но у меня постоянно возникают какие-то проблемы. То кнопки в подменю неактивны, то выдает вообще только один пункт подменю вместо всех.
Помогите разобраться, пожалуйста. Может следует вообще сделать по другому?