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

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

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

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
а если сделать вот как
например есть массив

Код AS3:
var arr1 = new Array()
for(var i=0; i<10;i++)
{
var arr2 = new Array();
arr2.src =" 0"+i+".jpg"
arr2.title = " картинко :"+i
arr2.loadBite = "0"
arr2.totalByte = undefined
arr1[i] = arr2
}
 
// потом передать этот массив лоадеру
var  mayLoader = new Loader(arr1)
 
// в лоадере запустить прогон и записывать в arr1[i].loadBite    и  arr1[i].totalByte
var TOTALkb
var LOADbkb
 
for (var k=0; k< arr1.length; k++)
{
loader.newcount = k
loader.load(arr1[k][src]);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,updatePreloader)
}
 
function updatePreloader(evt:ProgressEvent):void
		{
			var a:int = (evt.bytesLoaded)/1024;
			var b:int = evt.bytesTotal / 1024;
arr1[evt.target.newcount][loadBite] = a
arr2[evt.target.newcount][totalByte] = b
for (var c=0; c<arr1.length;  c++)
{
LOADkb:int + = arr1[c][loadBite]
TOTALkb:int +=  arr1[c][totalByte]
 
}
trace(LOADkb+ "из"+ TOTALkb)
}

Старый 05.04.2011, 09:26
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 12  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от vave Посмотреть сообщение
Код AS3:
// потом передать этот массив лоадеру
var  mayLoader = new Loader(arr1)
Выдаст ошибку в этой строке - объект Loader вызывается без аргументов. А потом будет ругаться на переменную loader, т.к. она не была объявлена ранее...


Последний раз редактировалось fish_r; 05.04.2011 в 09:29.
Старый 05.04.2011, 09:29
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 13  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
как тогда передать индекс массива в обработчик события?

Старый 05.04.2011, 09:37
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 14  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Вот пример класса из хелпа адоба:

Код AS3:
package {
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.URLRequest;
 
    public class LoaderExample extends Sprite {
        private var url:String = "Image.gif";
 
        public function LoaderExample() {
            var loader:Loader = new Loader();
            configureListeners(loader.contentLoaderInfo);
            loader.addEventListener(MouseEvent.CLICK, clickHandler);
 
            var request:URLRequest = new URLRequest(url);
            loader.load(request);
 
            addChild(loader);
        }
 
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(Event.INIT, initHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
        }
 
        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }
 
        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }
 
        private function initHandler(event:Event):void {
            trace("initHandler: " + event);
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
 
        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }
 
        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }
 
        private function unLoadHandler(event:Event):void {
            trace("unLoadHandler: " + event);
        }
 
        private function clickHandler(event:MouseEvent):void {
            trace("clickHandler: " + event);
            var loader:Loader = Loader(event.target);
            loader.unload();
        }
    }
}
Переделайте его под себя, чтобы он принимал на вход, в конструктор, имя файла на загрузку и, если нужно, какие-то аргументы. Переменную loader сделайте public Сделайте геттер на переменную loader (it the best practice ). Во внешнем классе на её свойство contentLoaderInfo повесте слушатель, метод указанный в котором будет суммировать поступающую информацию от всех таких классов. Вот и всё.


Последний раз редактировалось fish_r; 05.04.2011 в 09:45.
Старый 05.04.2011, 09:40
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 15  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
о.О
спс

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Идея - разделить прелоадер на кол-во файлов. Каждый кусочек будет показывать процент загруженности файла. Но при последовательной загрузке получится равномерно.

Код AS3:
function progressHandler(loaded:Number, total:Number):void
{
 progressBar.value =  ((_loadedFiles + loaded / total) / _filesCount) * 100;
}
Добавлено через 1 минуту
При параллельной загрузке другой алгоритм.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
гугл bulkloader, сам пользуюсь, отличная вещь. можно задать приоритеты и кучу всего.

Старый 06.04.2011, 06:22
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 18  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
ок, спс - я пошел по пути майкрософт тоесть делаю 2 полоски на одной процент из кол-ва загруженных файлов по отношению к всем из списка а на второй прогресс текущей загрузки

Старый 06.04.2011, 08:28
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 19  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
это не дает ни какого реального представления пользователю о том, сколько объема от суммарного закачено и сколько еще придется ждать - это не информер, это издевательство

Старый 06.04.2011, 11:10
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 20  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А в чем смысл загружать много отдельных файлов с одного вашего сайта? Я бы мог понять, если сайты разные. А так - сложить все в архив / скомпилировать в SWF, и одним файлом скачивать - проблема отпадет сама собой.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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