Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 22.08.2009, 21:08
  № 1  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
По умолчанию Как грамотно заполнить хмл объекты

Нужно последовательно заполнить несколько XML объектов, если заранее известны пути к каждому из них. Пока использую для этого такой алгоритм:
Код AS3:
CI=0; //переменная которая хранит номер текущего хмл
buildXML(aXMLpath[CI]);// где aXMLpath = [“path1","path2",..,”pathN”];- массив с адресами каждого из хмл.
 
function buildXML(path:String):void{ 
   var loader:URLLoader = new URLLoader();
   loader.dataFormat = URLLoaderDataFormat.TEXT;
   loader.addEventListener (Event.COMPLETE, xmlLoader);
   loader.load(new URLRequest(path));
}
 
function xmlLoader(event:Event):void{
   var xmlObj = [aXMLname[CI]];// где aXMLname = [xml1,xml2,..,xml3]; - массив с сылками на каждый хмл-объект
   xmlObj = new XML(event.target.data);
   switch(CI){//дальнейшая работа с заполненным хмл-обектом
       case 0: //code1
       case 1: //code2
       //и т.д.
   }
 
   if(++CI<aXMLpath.length) buildXML(aXMLpath[CI]);//если еще заполнены не все хмл
}
Т.е. сначала вызывается загрузка хмл для 1-ого объекта. Потом с помощью переменной CI выбирается соответствующий хмл-объект из массива aXMLname. Потом выполняется необходимые действия (для каждого свои). Потом значение CI сравнивается с количеством хмл-обектов, и если оно меньше операция повторяется.

Подскажите пожалуйста, как решить эту задачу более грамотно. Например, чтобы алгоритм имел вид
Код AS3:
for(var i:int=0;i< aXMLpath.length;i++){
   buildXML(i);
}
function buildXML(num:int){
   var xmlObj = [aXMLname[num]];
   xmlObj = new XML(get_xml(aXMLpath[num]));
   switch(num){
      case 0: //code1
      case 1: //code2
      //и т.д.
   } 
}
function get_xml(path:String):String
{
   //Загрузить хмл в xmlData
   return xmlData.toString();
}
Ну или еще как-нибудь

Создать новую тему   Часовой пояс GMT +4, время: 15:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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