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

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

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

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
По умолчанию unload для multiloadera

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

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

проблема:
unloadClip MovieClipLoader-а анлоадит только после полной занрузки.
unloadMovie работает, но нет возможности отследить ошибку загрузки (таймаут не гарантия реального отсутствия файла).
пробовал даже LoadVars. узнаю размер. удаляю лоадер - загрузка продолжается. а если изменить ссылку, то с начала грузит файл по новой ссылке, а потом продолжает закачивать старый.

Старый 02.02.2007, 19:17
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
А зачем ты анлоадиш, нельзя загрузить все сразу?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
как это загрузить все сразу?
мне же нужно отобразить все на одном прогресбаре. типа ща загружено 10 байт из 100 000 милионов.
пока загрузка не начнется, неизвестно какой размер у файла.
фокс вообще по одному файлу грузит. если через MovieClipLoader делать, то постоянно прогресбар прыгает от 100 к 0 и обратно Ж(
если простым лоадМуви, то вроде как все кучей пытаются загрузиться, но невозможно отследить ошибку загрузки, с появлением MovieClipLoader простое лоадМуви выдает в детБайтТотал -1 до начала загрузки, а не как рашьше (в 6-ке), только когда файла такого нет.

а получается, что если загрузка начата, то остановить ее уже нельзя (

Старый 04.02.2007, 13:07
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 4  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
у меня такая же задача, я решил - разбивать прогресс бар на зоны - каждая - для своего файла. они, естественно, получатся неравномерные (правда, можно прикинуть приблизительно относительный размер зон в зависимости от размеров файлов). а выгружать что-то уже загруженное хотя бы на 1% - мне кажется, это идеологически неправильно - ведь лоадер ради загрузки, а не загрузка - ради лоадера

Старый 04.02.2007, 13:13
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 5  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
кстати, пришла в голову такая идея - можно ведь считать размер файла напрямую - через сокет! только ведь во флеше нет обычного сокета? XMLSocket не даст ведь к заголовкам обратиться? а так можно было бы открыть файл, считать заголовки, забрать Content-length - и вперед - к построению прогресс бара

Старый 04.02.2007, 19:15
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
как вариант: собирать информацию о всех загрузках в onLoadProgress:
Код:
var urls=["p1.jpg","p2.jpg"];
var loader=new MovieClipLoader();
loader.addListener(this);
var movies=[];
for(var i=0;i<urls.length;i++){
	var mc=this.createEmptyMovieClip("mc"+i,i)
	movies.push(mc);
	loader.loadClip(urls[i],mc);
}

function onLoadProgress(){
	for(var i=0,l=0,t=0;i<movies.length;i++){
		var gp=loader.getProgress(movies[i]);
		l+=gp.bytesLoaded;
		t+=gp.bytesTotal;
	}
	trace(l+"/"+t);
}


Последний раз редактировалось silin; 04.02.2007 в 19:17.
Старый 05.02.2007, 01:26
Stone вне форума Посмотреть профиль Отправить личное сообщение для Stone Найти все сообщения от Stone
  № 7  
Ответить с цитированием
Stone
 
Аватар для Stone

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
2 silin
с двумя файлами нет проблем. а когда файлов больше 10-ти ?
MovieClipLoader в фоксе не начнет загрузку вторго файла не загрузив первый.

2 firelord
ели бы я знал заранее размер файлов... )

2 all
сейчас читаю про возможности javascript в определении наличия файла. возможности потестить нет. ни у кого подобного опыта нет?

Старый 05.02.2007, 02:41
lowka вне форума Посмотреть профиль Отправить личное сообщение для lowka Найти все сообщения от lowka
  № 8  
Ответить с цитированием
lowka

Регистрация: Sep 2006
Сообщений: 256
Почему нельзя использовать в качестве индикатора процесса загрузки не число загруженных байт, а количество файлов, которые уже загружены (общее их число всегда можно получить, если захотеть)?

Старый 05.02.2007, 09:50
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Stone
с двумя файлами нет проблем. а когда файлов больше 10-ти ?
MovieClipLoader в фоксе не начнет загрузку вторго файла не загрузив первый.
дада, это нюанс..
пропустил, сори
тогда, хотя бы не грузить целиком, а только до первого получения инфы:
Код:
class LoadSizer {
	var arr:Array=[];
	var loader:MovieClipLoader;
	var tmpMC:MovieClip;
	var totalSize:Number=0;
	var current:Number=0;
	var addListener,broadcastMessage;
	function LoadSizer(urls:Array){
		AsBroadcaster.initialize(this);
		loader=new MovieClipLoader();
		tmpMC=_root.createEmptyMovieClip("tmpMC",_root.getNextHighestDepth());
		loader.addListener(this);
		arr=urls;
		loader.loadClip(arr[current],tmpMC);
	}
	
	function onLoadProgress(){
		totalSize+=loader.getProgress(tmpMC).bytesTotal;
		current++;
		if(current<arr.length){
			loader.unloadClip(tmpMC);
			loader.loadClip(arr[current],tmpMC);
		}else{
			broadcastMessage("onReady",totalSize);
			tmpMC.removeMovieClip();
		}
	}
}
Код:
var urls=["p1.jpg","p2.jpg"];
var losdSizer=new LoadSizer(urls);
losdSizer.addListener(this);
function onReady(total){
	trace(total);
}
зы: туплю, потом посмотрел.., ты вроде так и делаешь..


Последний раз редактировалось silin; 05.02.2007 в 09:56.
Старый 05.02.2007, 10:44
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 10  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Слушайте, а чего юзера то пугать, флэш же выдает размер не сжатый, то есть если помимо картинок еще грузить и свф, то размер может в 2-3 раза больше реально скаченного.

Ну когда это было просто ну совсем необходимо (показывать кол-во байт) при условии что файлы скачивались с нашего сервера, просто запускался пхп скрипт на сервере которому передавался список файлов, скрипт же возвращал размер на каждый файл, потом это показывалось и грузилось.

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

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

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


 


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


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