Показать сообщение отдельно
Старый 24.11.2008, 00:30
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 3  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
то бишь, как я понял, это неосуществимо?... хм.
Я вот пробую заморочиться так, чтобы делать загрузку всех подгружаемых картинок одновременно с загрузкой самого мувика, чтобы их btotal и bload складывались,образуя один прогресс бар...
Проект надо доделывать к понедельнику.... Так что ещё отпишусь. Глядишь что и выйдет.

Добавлено через 18 часов 44 минуты
Между тем либо меня глючит, либо я таки нашел решение. При проверке, по крайней мере, все работает.
Решить эту задачу получилось при помощи внутреннего прелоадера. Поскольку проблема была в том, что все картинки загружались отдельно, поэтому получалась неразбериха в кадрах и фильм шел рывками, я решил забить все картинки (6 штук) в один loader при помощи MovieClipLoader. Так как они загружаются параллельно, а не поочередно, то даже не пришлось складывать все их byteloader'ы и total'ы. То есть можно было сделать так:
Код AS1/AS2:
(pig1.bytesLoaded/pig1.bytesTotal+pig2.bytesLoaded/pig2.bytesTotal+pig3.bytesLoaded/pig3.bytesTotal+pig4.bytesLoaded/pig4.bytesTotal)/4
чтобы найти средний процент загрузки, который выводился бы в textField и являлся _xscale loading-поля.
Вообщем решение пришло неожиданно и как всегда работает непонятно от чего. Но оно проще, чем описанное. Вот:
Код AS1/AS2:
var loader:MovieClipLoader=new MovieClipLoader();
var listener:Object={}
loader.addListener(listener);
 
loader.loadClip("img/img1.jpg", pig1);
loader.loadClip("img/img2.jpg", pig2);
loader.loadClip("img/img3.jpg", pig3);
loader.loadClip("img/img4.jpg", pig4);
loader.loadClip("img/img5.jpg", pig5);
loader.loadClip("img/img6.jpg", pig6);
 
listener.onLoadStart=function():Void {
	_root.createTextField("preloader", 10234, 250,100,40,18);
	preloader.border = true;
	preloader.text ="0%";
	_root.stop();
	};
listener.onLoadProgress=function(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
	preloader.text= Math.round(bytesLoaded/bytesTotal*100)+"%";
	var persent:Number = Math.round(bytesLoaded/bytesTotal*100)
	poloska._xscale= persent;
	};
listener.onLoadComplete=function():Void {
	_root.gotoAndPlay(2);
	preloader.removeTextField();
	poloska._visible=false;
	}
pig1,2,3,4,5,6 - это пустые клипы контейнеры, в которые загружаются картинки. Все эти клипы есть во флэшке уже с первого кадра, просто в невидимом состоянии, чтобы флэшь начинала подгружать их картинки сразу при загрузке первого кадра. Иначе косяк.
preloader- поле, которое отображает проценты циферками, а а клип poloska - синий прямоугольничек, _xscale которой равно процентам.
при начале загрузки картинок клип останавливает проигрывание. При завершении загрузки - идет и проигрывает клип со второго кадра.) А заодно прячет прогресс-бар.
Вообщем вроде как все правильно.