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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.02.2008, 15:47
julie525 вне форума Посмотреть профиль Отправить личное сообщение для julie525 Найти все сообщения от julie525
  № 11  
Ответить с цитированием
julie525
[+4 01.02.08]

Регистрация: Jan 2008
Сообщений: 9
вот и не думала, что прелоадер для нескольких файлов настолько сложен. Странно, что флеш неприспособлен для такой задачи.

Старый 01.02.2008, 16:08
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Причем тут флеш?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 01.02.2008, 16:18
julie525 вне форума Посмотреть профиль Отправить личное сообщение для julie525 Найти все сообщения от julie525
  № 13  
Ответить с цитированием
julie525
[+4 01.02.08]

Регистрация: Jan 2008
Сообщений: 9
ну как я думала - запускаешь загрузку файлов, ставишь прелоадер и нет проблем.

Старый 01.02.2008, 16:30
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 14  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Жизнь прекрасна?
Для создания общего прелоадера флеш должен знать общий размер файлов. Для этого он должен получит первоначальный ответ на запрос к серверу, без этого не куда. Но все запросы проходят через браузер, которые регулирует число одновременных потоков загрузки. И таких потоков может быть у каждого браузеру разное. Я вот знаю про IE, у него их два. То есть, когда вы собираетесь загрузить 40 картинок и делаете одновременный запрос ко всем, с надеждой подсчитать общий размер, на самом дела к серверу уходит только два запроса и пока вы не получите первых две картинки, остальные запросы будут стоять в очереди.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 04.02.2008, 16:43
julie525 вне форума Посмотреть профиль Отправить личное сообщение для julie525 Найти все сообщения от julie525
  № 15  
Ответить с цитированием
julie525
[+4 01.02.08]

Регистрация: Jan 2008
Сообщений: 9
Общий размер файлов я передаю из php через переменные. Через
Код:
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes)
считаю процент, во флеше все работает нормально, но в IE откуда-то появляется еще 300 K, а в opera - 400 K. Т.е. если размер общий загружаемых файлов 1.1 М, то грузится - 1.4 - 1.6 М. Не понимаю как тогда считать размер загружаемых файлов.

Старый 04.02.2008, 16:54
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 16  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Я общего кода не вижу.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 04.02.2008, 17:57
julie525 вне форума Посмотреть профиль Отправить личное сообщение для julie525 Найти все сообщения от julie525
  № 17  
Ответить с цитированием
julie525
[+4 01.02.08]

Регистрация: Jan 2008
Сообщений: 9
Код:
var btTotal:Number = _root.fs; //общий размер
gallery_xml.onLoad = function(success:Boolean) {
	try {
		if (success) {
			
			var gallery_array:Array = new Array();
		for (var i = 0; i<=_root.pictures.length; i++) {
		if(i==0) 
		{
			gallery_array.push(path_album+"albums/"+album+"/"+_root.first_photo);
		}
		else 
		{
			gallery_array.push(path_album+"albums/"+album+"/flash/"+_root.first_photo+"/"+_root.pictures[i-1]);
		}	
			}
			/* call the displayGallery function which handles loading in each 
			   of the gallery images and placing them on the Stage. */
			displayGallery(gallery_array);
		} else {
			throw new Error("Unable to parse XML");
		}
	} catch (e_err:Error) {
		trace(e_err.message);
	} finally {
		delete this;
	}
};

// load the gallery.xml file from the current directory.
gallery_xml.load("gallery_tween.xml");

/* create a function which loops through the images in an array,
   and creates new movie clips on the Stage. */
function displayGallery(gallery_array:Array) {
	var galleryLength:Number = gallery_array.length;
	

	// loop through each of the images in the gallery_array.
	for (var i = 0; i<galleryLength; i++) {
		
		/* create a movie clip instance which holds the image. We'll also set a variable, 
		   thisMC, which is an alias to the movie clip instance. */
		var thisMC:MovieClip = this.createEmptyMovieClip("image"+i+"_mc", i+1);
		
		/* load the current image source into the new movie clip instance, 
		   using the MovieClipLoader class. */
		mcLoader_mcl.loadClip(gallery_array[i], thisMC);
	
	}
	}


// define the MovieClipLoader instance and MovieClipLoader listener Object.
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function(target_mc:MovieClip) {
	
};
// while the content is preloading, modify the width of the progress bar.
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
	var pctLoaded:Number = Math.round(loadedBytes/totalBytes*100);
	if(pctLoaded < 100)
	{   
			varPercent = (_root.btLoaded + loadedBytes)/(_root.btTotal)*100;
	}
	else
	{
		
		varPercent = (_root.btLoaded + totalBytes)/(_root.btTotal)*100;
_root.btLoaded += totalBytes;

			}
	//trace("Процент загрузки в "+target_mc+" составляет "+varPercent+"%");
	//Показываем процент загрузки в текстовых полях
	anim_num.num_pr.text = Math.round(varPercent) + "%";
	anim_num.num_kb.text = Math.round(_root.btLoaded) + " of " + Math.round((_root.btTotal))+" "+_root.bTotal + " kb";
	};


Последний раз редактировалось julie525; 04.02.2008 в 18:02.
Старый 04.02.2008, 18:25
Dzhav вне форума Посмотреть профиль Отправить личное сообщение для Dzhav Найти все сообщения от Dzhav
  № 18  
Ответить с цитированием
Dzhav
 
Аватар для Dzhav

Регистрация: Jan 2008
Сообщений: 35
Кто-нубуть проверял этот скрипт в действии? Потому что мне кажется, что
в представленом коде функция displayGallery() использует один загрузчик "mcLoader_mcl" для всех картинок одновременно.
__________________
qubstudio.com

Старый 04.02.2008, 18:51
julie525 вне форума Посмотреть профиль Отправить личное сообщение для julie525 Найти все сообщения от julie525
  № 19  
Ответить с цитированием
julie525
[+4 01.02.08]

Регистрация: Jan 2008
Сообщений: 9
картинки грузятся нормально, вот только непонятно откуда берется еще 300-400 к, а то как-то непонятно, когда прелоадер показывает, что загружено 137 или 154%. Причем так происходит только в броузере, во флеше ничего лишнего не грузится.

Старый 04.02.2008, 19:20
Dzhav вне форума Посмотреть профиль Отправить личное сообщение для Dzhav Найти все сообщения от Dzhav
  № 20  
Ответить с цитированием
Dzhav
 
Аватар для Dzhav

Регистрация: Jan 2008
Сообщений: 35
Эсли учесть слова iNilsа про потоки загрузки, то интересно, получится ли такой вариант:

Считать все ссылки на картинки в переменную-массив (например linksArray).
Начать загрузку первой картинки через mcLoader_mcl, а когда наступит событие onLoadStart, считать значение picture.getBytesTotal() и доплюсовать его к переменной в которой хранится общий размер файлов (_root.total) , а потом оборвать загрузку с помощью unloadClip, и начать загрузку следущей картинки через тот же mcLoader_mcl и т. д., пока не считаются все размера файлов.
После таких операций в переменной _root.total должен находится размер всех картинок. И можно приступать к нормальной загрузке картинок...

Не слишком ли глупая идея? Хотелось бы узнать мнение опытных флешеров.
__________________
qubstudio.com

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

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

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


 


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


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