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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.05.2010, 18:02
DenverZ вне форума Посмотреть профиль Отправить личное сообщение для DenverZ Найти все сообщения от DenverZ
  № 1  
Ответить с цитированием
DenverZ

Регистрация: May 2010
Сообщений: 59
По умолчанию Загрузка несколько XML файлов

Здравствуйте, подскажите, как правильно сделать свой обработчик загрузки XML файлов
т.е. есть несколько XML предположим:
hero.xml
weapon.xml
enemy.xml

мне надо загрузить их данные в главном классе Main и потом уже пользоваться там где надо...

вот примерно что получается:
Main класс

Код AS3:
   public class Main extends MovieClip
   {
      public function Main():void
      {
         var xmlHero:XMLLoader = new XMLLoader("Data/Hero.xml");
         var xmlWeapon:XMLLoader = new XMLLoader("Data/Weapon.xml");
         var xmlEnemy:XMLLoader = new XMLLoader("Data/Enemy.xml");
         trace(xmlHero.xmlData, xmlWeapon.xmlData, xmlEnemy.xmlData);
      }
   }
и класс XMLLoader

Код AS3:
package
{
   import flash.events.Event;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
 
   public class XMLLoader
   {
      var xmlData:XML;
 
      public function XMLLoader(file:String):void
      {
         var loader:URLLoader = new URLLoader(new URLRequest(file));
         loader.addEventListener(Event.COMPLETE, loadedXML);
      }
 
      private function loadedXML(e:Event):void
      {
         e.target.removeEventListener(Event.COMPLETE, getXML);
         xmlData = new XML(e.target.data);
      }
   }
}
выводит null, оно и понятно т.к. данные еще не загрузились
собственно вопрос как быть?

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

есть идеи как сделать?

заранее благодарю

Старый 27.05.2010, 18:17
gldrawworld вне форума Посмотреть профиль Отправить личное сообщение для gldrawworld Найти все сообщения от gldrawworld
  № 2  
Ответить с цитированием
gldrawworld

Регистрация: Apr 2010
Сообщений: 128
ну так диспатчите свое сообщение

Код AS3:
   public class Main extends MovieClip
   {
      public function Main():void
      {
         var xmlHero:XMLLoader = new XMLLoader("Data/Hero.xml");
         xmlHero.addEventListener(XMLLoader.LOADED,handlerXmlLoaded)
      }
      private function handlerXmlLoaded(event:Event):void
      {
               trace(event.target.xmlData);
      }
   }
Код AS3:
package
{
   import flash.events.Event;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
 
   public class XMLLoader
   {
      public var xmlData:XML;
      public static var LOADED:String = "loadedXML";
      public function XMLLoader(file:String):void
      {
         var loader:URLLoader = new URLLoader(new URLRequest(file));
         loader.addEventListener(Event.COMPLETE, loadedXML);
      }
 
      private function loadedXML(e:Event):void
      {
         e.target.removeEventListener(Event.COMPLETE, getXML);
         xmlData = new XML(e.target.data);
         dispatchEvent(new Event(XMLLoader.LOADED,true));
      }
   }
}
__________________
md5 еще какое то (я так понял кодировка) … вот такие дела ))

Старый 27.05.2010, 18:26
DenverZ вне форума Посмотреть профиль Отправить личное сообщение для DenverZ Найти все сообщения от DenverZ
  № 3  
Ответить с цитированием
DenverZ

Регистрация: May 2010
Сообщений: 59
спасибо за оперативный ответ :-) будем работать дальше =)

Добавлено через 3 часа 20 минут
2gldrawworld а не подскажите, как действовать именно с несколькими файлами XML?
в данном варианте как Вы показали мне нужно:

загрузить все три файла, и только в случае, когда загрузятся ВСЕ, продолжить работу

что-то не соображу как сделать

Старый 28.05.2010, 00:03
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 4  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Да грузите их последовательно, один за одним, елси все ок, то работаем дальше, елси на какой то стадии ошибка то извещаете об этом.

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

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

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


 


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


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