PDA

Просмотр полной версии : Передача массива произведенного от XML при помощи LocalConnection


inspace
17.07.2006, 15:12
Уважаемые, такая сложность возникла.
Загружаю xml присваиваю его массиву.
Открываю локал конекшин и передаю этот массив другой флешке. Все данные, за исключением длины массива теряются. ( атрибуты, узловые значения). Если же заполнять создать простой массив, то его значения передются нормально.
Не подскажите возможна ли передача массива основанного на XML через локал конекшин?

etc
17.07.2006, 15:32
Покажи, где не работает.

iNils
17.07.2006, 15:35
Объем данных не может быть более 40 кб, у тебя это так?

inspace
17.07.2006, 15:44
нет. меньше 40 кб. там данные о подменюшке - 15 узлов на каждый по два аттрибута.

загрузка xml

loadArticles = function(success) {

if (success) {

sectionXML = new XML();
sectionXML = dataXML.firstChild;
articleItem = sectionXML.childNodes;
beginDraw();
} else {
trace("no xml found.");
}
}

dataXML.onLoad = loadArticles;

dataXML.load("data.xml");

beginDraw - отрисовывает основное меню - элементы которого obj

obj.onPress = function() {
var AR = new Array();
var AR1 = new Array();
AR1 = articleItem[this.id].childNodes;
trace(AR1);
//trace(AR);
//var AR:Array = Array("dfds","fd","32","34fv");
sending_lc.send("lc_name", "methodToExecute", AR1);
}
далее в принимающем файле

receiving_lc.methodToExecute = function(param1:Array) {
result_txt.text ="";
trace(param1[0] +"gf");
for(var t =0;t< param1.length;t++) {
result_txt.text += param1[t]+" fdfd ";
}
result_txt.autoSize =true;
};

etc
17.07.2006, 15:53
Есть подозрение, что нужно передавать не ссылку на объект, а сам объект.

inspace
17.07.2006, 16:07
ок. когда передаю dataXML то всё нормально. А как сформировать новый обьект, так чтобы передовалась не весь XML а только часть? Создать новый array и в него делать push? не потеряется ли при этом часть инфы?

etc
17.07.2006, 16:12
Нужно создать новый массив и скопировать в него нужные ветки XML. Не дать ссылки, а именно скопировать

iNils
17.07.2006, 16:25
var AR1 = new Array();
AR1 = articleItem[this.id].childNodes;
Ты создал массив AR1, а потом переменной AR1 присвоил ссылку на нод xml, то есть AR1 больше не массив.

inspace
17.07.2006, 16:41
Да понятно...а чтобы новый объект xml передовать нужно что ли createElement использовать?

inspace
17.07.2006, 16:58
Затупил
for(var i=0;i<articleItem[this.id].childNodes.length;i++) {
AR1.push(articleItem[this.id].childNodes[i].toString());
}

все ок. спасибо всем.

etc
17.07.2006, 17:04
var AR1 = new Array();
AR1 = articleItem[this.id].childNodes;
Ты создал массив AR1, а потом переменной AR1 присвоил ссылку на нод xml, то есть AR1 больше не массив.
Да? А я думал ссылку на массив childNodes =)

iNils
17.07.2006, 17:35
Да, действительно. Был не прав.