Просмотр полной версии : Передача массива произведенного от XML при помощи LocalConnection
Уважаемые, такая сложность возникла.
Загружаю xml присваиваю его массиву.
Открываю локал конекшин и передаю этот массив другой флешке. Все данные, за исключением длины массива теряются. ( атрибуты, узловые значения). Если же заполнять создать простой массив, то его значения передются нормально.
Не подскажите возможна ли передача массива основанного на XML через локал конекшин?
Объем данных не может быть более 40 кб, у тебя это так?
нет. меньше 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;
};
Есть подозрение, что нужно передавать не ссылку на объект, а сам объект.
ок. когда передаю dataXML то всё нормально. А как сформировать новый обьект, так чтобы передовалась не весь XML а только часть? Создать новый array и в него делать push? не потеряется ли при этом часть инфы?
Нужно создать новый массив и скопировать в него нужные ветки XML. Не дать ссылки, а именно скопировать
var AR1 = new Array();
AR1 = articleItem[this.id].childNodes;
Ты создал массив AR1, а потом переменной AR1 присвоил ссылку на нод xml, то есть AR1 больше не массив.
Да понятно...а чтобы новый объект xml передовать нужно что ли createElement использовать?
Затупил
for(var i=0;i<articleItem[this.id].childNodes.length;i++) {
AR1.push(articleItem[this.id].childNodes[i].toString());
}
все ок. спасибо всем.
var AR1 = new Array();
AR1 = articleItem[this.id].childNodes;
Ты создал массив AR1, а потом переменной AR1 присвоил ссылку на нод xml, то есть AR1 больше не массив.
Да? А я думал ссылку на массив childNodes =)
Да, действительно. Был не прав.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.