Юрис
08.06.2009, 20:25
Первый опыт работы с XML, посему не пинайте.
Проблема вот в чем, загружаем ХМЛ, разбираем по запчастям в массив. Затем строится своеобразное меню, так вот не могу догнать как же назначить пунктам меню ссылки из массива. Пытаюсь записать ее в переменную при прохождении цикла, а она перезаписывается. В общем проще показать код))) Вот он
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("test.xml");
myXML.onLoad = function(success) {
if (success) {
createArray();
} else {
result_text.text = "Данные небыли загружены";
}
};
var list:Array = new Array();
function createArray() {
for (n=0; n<myXML.firstChild.childNodes.length; n++) {
var image = myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue;
var name = myXML.firstChild.childNodes[n].firstChild.nextSibling.firstChild.nodeValue;
list[n]=[[image],[name]];
}
createMenuList();
}
function createMenuList(){
var spacing:Number = 30;
for (var i=0;i<list.length;++i){
var picName:String = list[i][0]; //вот тут определяется искомая переменная.
var name1:String = "name_mc"+i+"_mc";
var y:Number = i*spacing;
list_mc.attachMovie("name_mc",name1,i);
list_mc[name1].temp = picName;
list_mc[name1]._y=y;
//А вот тут вот начинается самая засада. когда происходит передача переменной в функцию, она почемуто во всех кнопках оказывается одинаковая.
list_mc[name1].button_bt.onPress = function() {
showPicture(picName);
}
}
}
function showPicture (href){
test_txt.text = href; //Соответственно здесь и выводится результат.
}
Подозреваю что неверно работаю с переменной в цикле, но как правильно ума не приложу. Заранее спасибо.
Проблема вот в чем, загружаем ХМЛ, разбираем по запчастям в массив. Затем строится своеобразное меню, так вот не могу догнать как же назначить пунктам меню ссылки из массива. Пытаюсь записать ее в переменную при прохождении цикла, а она перезаписывается. В общем проще показать код))) Вот он
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("test.xml");
myXML.onLoad = function(success) {
if (success) {
createArray();
} else {
result_text.text = "Данные небыли загружены";
}
};
var list:Array = new Array();
function createArray() {
for (n=0; n<myXML.firstChild.childNodes.length; n++) {
var image = myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue;
var name = myXML.firstChild.childNodes[n].firstChild.nextSibling.firstChild.nodeValue;
list[n]=[[image],[name]];
}
createMenuList();
}
function createMenuList(){
var spacing:Number = 30;
for (var i=0;i<list.length;++i){
var picName:String = list[i][0]; //вот тут определяется искомая переменная.
var name1:String = "name_mc"+i+"_mc";
var y:Number = i*spacing;
list_mc.attachMovie("name_mc",name1,i);
list_mc[name1].temp = picName;
list_mc[name1]._y=y;
//А вот тут вот начинается самая засада. когда происходит передача переменной в функцию, она почемуто во всех кнопках оказывается одинаковая.
list_mc[name1].button_bt.onPress = function() {
showPicture(picName);
}
}
}
function showPicture (href){
test_txt.text = href; //Соответственно здесь и выводится результат.
}
Подозреваю что неверно работаю с переменной в цикле, но как правильно ума не приложу. Заранее спасибо.