I everyone.
i want to duplicate a menu with it’s sub menu, everything is ok BUT… when i clic on subMenu item i want to trac teh parent menu but it always give the las t parent instance created …if someone knows the issue and may explain me it would be very helpfull. Here’s my code, you just need to have a mc in your library with menuItem link as actionScript; it should also contain a dynamic textField named menuLabel.
var floor:Number=0;
var xThemesGeneraux:Number=0;
var xSousThemes:Number=0;
var menuItem;
var menuPiste;
const ITEM_HEIGHT:Number=80;
var menuGeneralArray= new Array();
function init():void {
for (var countPiste= 1; countPiste<=3; countPiste++) {
menuPiste=new Sprite();
menuPiste.name=countPiste;
menuPiste.y = (floor + ITEM_HEIGHT*(countPiste));
addChild(menuPiste);
trace("nom des pistes ="+menuPiste.name);
createMenus();
}
}
function createMenus():void {
xThemesGeneraux=0;
for (var i:int = 0; i < 5; i++) {
menuItem = new MenuItem();
menuItem.menuLabel.text="Menu"+i;
menuItem.mouseChildren=false;
menuItem.buttonMode=true;
menuItem.name=i.toString();
menuItem.x= (xThemesGeneraux*80);
//menuItem.y=YMenuPos*10;
menuItem.addEventListener(MouseEvent.CLICK, createSubMenu);
xThemesGeneraux++;
menuGeneralArray.push(menuItem.name);
menuPiste.addChild(menuItem);
}
}
function createSubMenu(e:Event):void {
var target:Sprite=e.target as Sprite;
trace("menuGeneralArray ="+menuGeneralArray[Number(Sprite(target).name)]);
trace("clip parent ="+Sprite(target.parent).name);
xSousThemes=0;
var nbRandom =Math.round(Math.random()*10)+1;
for (var i:int = 0; i < nbRandom; i++) {
menuItem = new MenuItem();
menuItem.menuLabel.text="sousMenu"+i;
menuItem.mouseChildren=false;
menuItem.buttonMode=true;
menuItem.name=i.toString();
menuItem.x= (xSousThemes*80);
menuItem.y=Sprite(target.parent).y-220;
menuItem.addEventListener(MouseEvent.CLICK, clickSerie);
xSousThemes++;
menuPiste.addChild(menuItem);
//trace("subclip parent ="+Sprite(menuItem.parent).name);
}
}
function clickSerie(e:Event):void {
trace("bt"+e.target.name);
var mTarget=Number(e.target.name);
trace("MC :"+(mTarget));
var targetSubClip:Sprite=e.target as Sprite;
trace("clip parent ="+Sprite(targetSubClip.parent).name);
//var currentName:String=e.currentTarget.parent.name;
//trace(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> currentName ="+currentName);
//for (var i=0; i<menuGeneralArray.numChildren-1; i++) {
//var mc:Sprite=Sprite(menuGeneralArray.getChildAt(i));
//trace("+++++++++mc ="+mc);
////mc.doStuff();
//}
//for (var i=0; i<targetSubClip.parent.numChildren-1; i++) {
// var mc:Sprite=menuPiste.getChildAt(i);
// //mc.doStuff();
// trace("+++++++++mc ="+mc);
// }
var thisParent:Sprite = Sprite(e.target.parent);
trace(">>>>>>>>>>>>>> thisParent ="+thisParent.name)
}
init();