Я пытаюсь создать меню изображений Xml, которое при нажатии кнопки переходит к определенной метке кадра.
Цикл работает, изображения и текст загружаются без проблем.
Мои проблемы:
Предметы не в центре сцены (только
последний элемент xml);
При нажатии на кнопку все кнопки идут
на тот же ярлык (ярлык, который
на последнем элементе xml);
МОЙ КОД:
Переменные:
//CREATE VARIABLES FOR XML
var columns:Number;
var my_total:Number;
var my_menu:XMLList;
var item_label:String;
var x_counter:Number = 0;
var y_counter:Number = 0;
Загрузка XML, я объясняю в комментариях все, что работает или нет:
//LOAD XML
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("xml.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void
{
var myXML:XML = new XML(e.target.data);
//DEFINE THE LENGTH OF THE MENU ITEMS (WORKS WELL)
my_menu = myXML.ITEM;
my_total = my_menu.length();
columns = myXML. @ COLUMNS;
for (var i:Number = 0; i < my_total; i++)
{
//CREATE THE LOOP FOR MOVIE CLIP THAT I HAVE IN LIBRARY WITH THE CLASS "menu_item"
var MC:MovieClip = new menu_item();
var loadIMG:Loader = new Loader;
// trace(MC); GIVE ME ALL THE XML ITEMS SO WORKS GOOD
addChild(MC);
//To CENTER ALL OBJECTS IN MC (NOT WORKS- ONLY CENTERS THE LAST ITEM OF THE XML)
function resizeHandler(e:Event):void
{
MC.x = (MC.stage.stageWidth / 2) - (MC.width / 2);
MC.y = (MC.stage.stageHeight / 2) - (MC.height / 2);
}
stage.addEventListener(Event.RESIZE, resizeHandler);
stage.dispatchEvent(new Event(Event.RESIZE));
//DISPLAY MENU ITEMS IN A GRID WITH COLUMNS (WORKS WELL)
MC.x = (MC.width+10)*x_counter;
MC.y = (MC.height+100)*y_counter;
if (x_counter + 1 < columns)
{
x_counter++;
}
else
{
x_counter = 0;
y_counter++;
}
//TO LOAD IMAGES AND TEXT FOR THE MENU (WORKS WELL)
loadIMG.load(new URLRequest (my_menu[i].@IMAGE));
MC.container_mc.img_mc.addChild(loadIMG);
MC.container_mc.title_mc.text = my_menu[i]. @ TITLE;
//TEST
MC.name = "mc" + i;
loadIMG.name = "image" + i;
//ON BUTTON CLICK GO TO LABEL NAME IN XML (NOT WORKS, ALL ITEMS GOES TO THE SAME AND LAST LABEL IN XML)
MC.addEventListener(MouseEvent.CLICK, callFull);
//var test = my_menu[i.target.name].@LABEL; //(FAILED TEST TO TARGET THE LABELS)
var go_labels = my_menu[i]. @ LABEL;
function callFull(e:MouseEvent):void
{
labels_mc.gotoAndStop(go_labels);
}
}
}
XML:
<MENU COLUMNS="2">
<ITEM IMAGE="img/1.jpg" TITLE="title 1" LABEL="label 1"></ITEM>
<ITEM IMAGE="img/2.jpg" TITLE="title 2" LABEL="label 2"></ITEM>
<ITEM IMAGE="img/3.png" TITLE="title 3" LABEL="label 3"></ITEM>
<ITEM IMAGE="img/4.png" TITLE="title 4" LABEL="label 4"></ITEM>
</MENU>
Спасибо