Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Передача массива произведенного от XML при помощи LocalConnection (http://www.flasher.ru/forum/showthread.php?t=82612)

inspace 17.07.2006 15:12

Передача массива произведенного от XML при помощи LocalConnection
 
Уважаемые, такая сложность возникла.
Загружаю 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

Цитата:

Сообщение от iNils
Код:

var AR1 = new Array();                       
AR1 = articleItem[this.id].childNodes;

Ты создал массив AR1, а потом переменной AR1 присвоил ссылку на нод xml, то есть AR1 больше не массив.

Да? А я думал ссылку на массив childNodes =)

iNils 17.07.2006 17:35

Да, действительно. Был не прав.


Часовой пояс GMT +4, время: 14:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.