Форум 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 (http://www.flasher.ru/forum/showthread.php?t=107104)

Flashechka 25.01.2008 19:29

создание нескольких XML
 
всем привет, у меня проблемка с подгрузкой нескольких XML поможите?
Код:

need_XML = new XML();
 need_XML.ignoreWhite = true;
 need_XML.load("http://www.my_domain.ru/"+html_xml[i]);
 need_XML.onLoad = function(i) {
        if (i) {
                information();
          }
 };

у есть несколько XML...
Код:

(html_xml1, html_xml2, html_xml3...)
надо для каждой и прировнять к need_XML
Код:

(need_XML1, need_XML2....)
как это сделать правильно?

looptroop 26.01.2008 01:58

не понятно. ты хочешь подгрузить три разных хмл файла и создать один хмл объект или несколько хмл объектов для каждого хмл сорса.

я думаю что в любом случае надо поочереди подгружать каждый файл с хмл-ем. и тоже самое про хмл объекты, которые у тя получаются.

Flashechka 26.01.2008 09:38

мне надо чтоб
Код:

need_XML1 = html_xml1,need_XML2 = html_xml2, need_XML3 = html_xml3.....
дело в том что у меня всегда разное количество "html_xml" и поэтому придётся каждый раз переделывать создание нужного количества "need_XML", а хотелось чтобы он сам создовал ровно столько, сколько есть "html_xml"(для проверки у меня их покачто 10)

looptroop 26.01.2008 14:56

проходи циклом по твоим "html_xml", как я понял это массив. И динамически создавай нужные тебе need_XML... вот и все.

Flashechka 26.01.2008 15:05

looptroop я понимаю что не блещу умом в АС, но еслибы мне нужен был такой наводящий ответ я бы обратилась в раздел Ас 2.0 для профессионалов, а т.к. незнаю всех действий обращаюсь сюда.. покажи пожалуйста этот массив который будет выполняться определённое количество раз...

wvxvw 26.01.2008 18:07

Код:

import mx.utils.Delegate;
//
var address_arr:Array = ['test1.xml', 'test2.xml', 'test3.xml']; // Список адресов с которых нужно получать ХМЛ файлы.
var xml_arr:Array = []; // Массив, в котором будут хранится полученные ХМЛи
var read_index:Number = 0; // Переменная, которую мы будем инкрименировать с каждым успешно загруженным ХМЛем
var loader_xml:XML = new XML(); // ХМЛ объект, который будет грузить ХМЛ файлы
loader_xml.ignoreWhite = true; // желательно всегда включать, иначе знаки пробелов, табуляции, обрыва строки и т.п. 
// будут также интерпретироваться как узлы

loader_xml.onLoad = Delegate.create(this, onLoadHandler); // Назначаем функцию-обработчик для события загрузки
function onLoadHandler(ok:Boolean):Void { // Функция-обработчик
        if (ok && read_index<=address_arr.length) { // Если есть еще что грузить, и загрузка завершилась успешно -- грузим дальше
                xml_arr.push(loader_xml.cloneNode(true)); // Создаем дубликат загруженного ХМЛя и помещаем его в массив
                if (read_index<address_arr.length) { // Если остались еще незагруженные ХМЛи -- грузим следующий
                        loader_xml.load(address_arr[read_index]);
                }
                read_index++; // "Записываем", что ХМЛ загружен
                if (read_index>address_arr.length) { // Если все ХМЛи загружены -- выводим в окно вывода информацию о них
                        trace('all XML files successfuly loaded!');
                        trace('---------------------------------');
                        trace(xml_arr.join('\r---------------------------------\r'));
                }
        } else {
                trace('download failied!'); // Если ХМЛ не загрузился -- предпинимаем какие-нибудь меры тут.
        }
}
onLoadHandler(true); // первый запуск загрузки


Flashechka 26.01.2008 18:11

спасибо большое, но можешь отредактировать и вписать что, куда, и зачем?

wvxvw 26.01.2008 18:18

Цитата:

Сообщение от Flashechka
спасибо большое, но можешь отредактировать и вписать что, куда, и зачем?

Хм... ок =) ща

Flashechka 26.01.2008 22:32

спасибо большое.. и у меня ещё вопросик..
скажем у меня XML грузится так:
Код:

loader_xml(http//:www.syte.ru/html_xml.xml)
как мне прописать в "trace", чтобы этот адрес высветился?

wvxvw 26.01.2008 23:42

Код:

import mx.utils.Delegate;
//
var address_arr:Array = ['test1.xml', 'test2.xml', 'test3.xml'];
var xml_arr:Array = [];
var read_index:Number = 0;
var loader_xml:XML = new XML();
loader_xml.ignoreWhite = true;
loader_xml.onLoad = Delegate.create(this, onLoadHandler);
function onLoadHandler(ok:Boolean):Void {
        if (ok && read_index<=address_arr.length) {
                xml_arr.push(loader_xml.cloneNode(true));
                if (read_index<address_arr.length) {
                        trace('from URL: '+address_arr[read_index]);
                        loader_xml.load(address_arr[read_index]);
                }
                read_index++;
                if (read_index>address_arr.length) {
                        trace('all XML files successfuly loaded!');
                        trace(xml_arr.join('\r---------------------------------\r'));
                }
        } else {
                trace('download failied!');
        }
}
onLoadHandler(true);



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

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