Я все перепробовал. Массивы довольно просты, поэтому я не знаю, почему это не работает:
var menuList:Array = [menu_bag_mc,menu_chips_mc,menu_coke_mc,menu_cup_mc,menu_deodorant_mc,menu_fork_mc,menu_knife_mc,menu_lighter_mc,menu_milk_mc,menu_pill_mc,menu_rings_mc,menu_shampoo_mc,menu_spoon_mc,menu_straw_mc,menu_toothbrush_mc,menu_trashbag_mc,menu_water_mc];
function captureAllClicks(event:MouseEvent):void
{
trace(menuList.indexOf(event.target));
}
stage.addEventListener(MouseEvent.CLICK, captureAllClicks);
Каждый раз, когда я нажимаю на любой из элементов на сцене (всем из которых даны имена экземпляров, перечисленных выше. Каждый представляет собой мувиклип, содержащий кнопку), я получаю след -1. ПОЧЕМУ?! * * 1004
edit2
Что должно произойти:
for each (var mc:MovieClip in menuList) mc.addEventListener(MouseEvent.CLICK, createContent);
//right here, i need to make a variable that I can put in the "addchild" so that
//for every one of the list items clicked, it adds a movieclip child with
//the same name (such as menu_bag_mc from above) with "_frame" appended.
var framevar:MovieClip = menuList[i] += "_frame";
function createContent(event:MouseEvent):void {
if(MovieClip(root).currentFrame == 850) {
while(MovieClip(root).numChildren > 1)
{
MovieClip(root).removeChild(MovieClip(root).getChildAt(MovieClip(root).numChildren - 1));
}
MovieClip(root).addChild (framevar);
MovieClip(root).addChild (closeBtn);
}
else {
MovieClip(root).addChild (framevar);
MovieClip(root).addChild (closeBtn);
MovieClip(root).gotoAndPlay(806);
}
}
Если я не могу сделать переменную, то нет смысла для всего «для каждого» оператора, который вы собираете вместе ... на самом деле нет никакой точки для массива, потому что мне все равно придется создать 20 строк кода каждый отдельный. Какой смысл иметь массив, если вы не можете сделать из него переменные?