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

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

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

Регистрация: Jun 2006
Сообщений: 400
По умолчанию Паралельная загрузка нескольких XML файлов.

Идет процесс инициализации. Нужно в середине процесса подгрузить несколько XML файлов. Как мне сначала загрузить все что нужно, а потом запустить процесс далее. Я начинаю грузить несколько файлов. Событий на завершение загрузки тоже несколько. Кто закончит раньше знать не могу.

Первое, что пришло, это цепочка. Начинаю грузить первый файл. В событии окончания загрузки разбираю файл и начинаю грузить второй. В событии завершения загрузки второго файла разбираю файл и начинаю грузить третий. И так далее по всем файлам. В функции события окончания загрузки последнего файла продолжаю работу основной программы.

И что-то с ходу нормальной альтернативы придумать не могу.

Старый 22.12.2009, 16:24
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Для каждого файла заведите флаг загрузки. При завершении загрузки файла устанавливаете его флаг и проверяете все остальные - если все стоят, значит все файлы загружены.
__________________
тонкий тролль, осеянный благодатью

Старый 22.12.2009, 16:47
proxiServer вне форума Посмотреть профиль Отправить личное сообщение для proxiServer Найти все сообщения от proxiServer
  № 3  
Ответить с цитированием
proxiServer
 
Аватар для proxiServer

Регистрация: Jun 2006
Сообщений: 400
Хм... А если файлов много, то кучу флагов делать? Про флаги была идея, но не очень нравиться. Может есть еще какой метод?

Старый 22.12.2009, 17:06
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 4  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
я делаю либо флаги, либо цепочкой

ИМХО флаги лучше, а что не нравится?
__________________
low +

Старый 22.12.2009, 17:22
proxiServer вне форума Посмотреть профиль Отправить личное сообщение для proxiServer Найти все сообщения от proxiServer
  № 5  
Ответить с цитированием
proxiServer
 
Аватар для proxiServer

Регистрация: Jun 2006
Сообщений: 400
Jewelz, и там и там не удобно изменять структуру. У меня файлов много. И на этапе разработки их перечень постоянно меняется. Да и сомнения берут, что это правильный подход. Потому то собственно и интересуюсь.

Старый 22.12.2009, 17:25
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 6  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Можно сделать счетчик вместо флагов. Еще есть bulk-loader, готовая библиотека для таких дел, но я ее ни разу не использовал.
__________________
мой пустой блог

Старый 22.12.2009, 17:25
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 7  
Ответить с цитированием
veisss
[+1 16.08.10]

Регистрация: Jun 2009
Сообщений: 93
можно еще запомнить в начале кол-во файлов в переменную и при окончании загрузки минусовать, и тут-же проверять если ноль то все уже загрузились

Старый 22.12.2009, 17:55
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 8  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
а в чем проблема закинуть кучу лодеров в массив и слушать когда же она закачают
__________________
Коллекционирую чужие ActionScript Блоги

Старый 22.12.2009, 17:57
proxiServer вне форума Посмотреть профиль Отправить личное сообщение для proxiServer Найти все сообщения от proxiServer
  № 9  
Ответить с цитированием
proxiServer
 
Аватар для proxiServer

Регистрация: Jun 2006
Сообщений: 400
iflamberg Спасибо за наводку. То что нужно.

Код AS3:
    import br.com.stimuli.loading.BulkLoader;
 
	/*
	 * Грузить можно что угодно и как угодно. 
	 * Просто и удобно.
	 */
    var bulkLoader : BulkLoader = new BulkLoader("main loading");
    bulkLoader.add("my_xml_file.xml");
    bulkLoader.add("main.swf");
    var backgroundURL : URLRequest = new URLRequest("background.jpg");
    bulkLoader.add(backgroundURL);
 
	//Событие завершения загрузки.
    bulkLoader.addEventListener(BulkLoader.COMPLETE, onCompleteHandler);
    //Событие для прогрессбара
    bulkLoader.addEventListener(BulkLoader.PROGRESS, _onProgressHandler);
 
    //Собственно запустили загрузку.
    bulkLoader.start();
 
	//Это прогрессбар, все понятно.
    function _onProgressHandler(evt : ProgressEvent) : void{
        trace("Loaded" , evt.bytesLoaded," of ",  evt.bytesTotal);
    }
 
 
    function onCompleteHandler(evt : ProgressEvent) : void{
 
            //Вытаскиваем так. 
            var mainMovie : MovieClip = bulkLoader.getMovieClip("main.swf");
            var mXML : XML = bulkLoader.getXML("my_xml_file.xml");			
            var myBitmap : Bitmap = bulkLoader.getBitmap("background.jpg");
            var myBitmap : Bitmap = bulkLoader.getBitmap(backgroundURL);
    }
 
	//Самый кайф! В любом классе вашего проекта можем по уникальному имени обратиться
	//к нашей загрузке и тащить из нее то что нам нужно. 
	//Прям как библиотека флешовая. 
    var mainLoader : BulkLoader = BulkLoader.getLoader("main loading");
 
    var mXML : XML = mainLoader.getXML("my_xml_file.xml");
    var mXML : XML = BulkLoader.getLoader("main loading").getXML("my_xml_file.xml");
Правда последний прикол нужно проверить. Что-то прям даже не верится. Кто знает как такое сделать без передачи ссылок параметром? Как сделано подскажите? Через статические классы?

Все, сам посмотрел внутри. Через статику сделано. Классно и не сильно большая библиотека.

random13 Лоадеры в массив - понятно. Слушать когда закачаются - непонятно. Слушать как?


Последний раз редактировалось proxiServer; 22.12.2009 в 18:09.
Старый 22.12.2009, 18:15
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 10  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
Цитата:
Сообщение от proxiServer Посмотреть сообщение
iflamberg
random13 Лоадеры в массив - понятно. Слушать когда закачаются - непонятно. Слушать как?

cоздаем лодер, кидаем ему ссыль, говорим загрузить, вешаем слушатель на лодер(по завершение загрузки выполнить то то), закидываем слушатель в массив.

как ток выполнился колбек удаляем лодер из массива, стопим все снимаем слушатель и уничтожаем лодер
__________________
Коллекционирую чужие ActionScript Блоги

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

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

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


 


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


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