![]() |
|
||||||||||
|
|||||
|
Есть прелоадер, который загружает всю графику на сайт и все работает. Но поставлена задача: грузить в прелоадер, не только графику, но самого себя, т.е. рабочую флешку. Было добавлено 2 строки кода (обозначено красным), в результате чего все грузится как и раньше, но помимо этого еще по одной копии каждой картинки грузится в начало координат и никак не реагирует на навигацию. Версия плеера - 9. Баг проявляется на мозиле и на эксплорере, в новом эксплорере и в опере не юзал, та же проблема собственно в плеере и в самом флеше. Вот код:
stop();
import mx.transitions.Tween;
import mx.transitions.easing.*;
Stage.scaleMode="noScale";
//создание загрузчика и слушателя
var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_lst:Object = new Object();
my_mcl.addListener(my_lst);
_root.preloader._visible = false;
//mass - создание массива для хранения загружаемых файлов
var mass = new Array();
//okload - контейнер, в который загружаются все файлы
var okload = false;
//пока выполняется загрузка считаем проценты
my_lst.onLoadProgress = function(target_mc:MovieClip, loaded:Number, total:Number) {
l = Math.round(loaded/total*100);
mass[target_mc] = [loaded, total];
};
//определение количества загруженой информации
this.onEnterFrame = function() {
if (!okload) {
return true;
}
//tbl и tbt - определяют общее количество загружаемой информации(total) и количество загруженой информации(loaded)
tbl = 0;
tbt = 0;
for (cl in mass) {
tbl += mass[cl][0];
tbt += mass[cl][1];
}
//добавляем размер самой флэхи
tbl += _root.getBytesLoaded();
tbt += _root.getBytesTotal();
//определение объема флэшки
//perc- проценты
perc = Math.round(tbl/tbt*100);
preloader.gotoAndStop(perc);
_root.preloader.preload_txt.text = perc+"%";
if (perc == 100) {
//код, выполняемый при окончании загрузки контента
_root.preloader._visible = false;
okload = false;
for (i=0; i<massimages.length; i++) {
_root["cont_mc"+i]._visible = false;
}
gotoAndStop(2);
}
};
//код, выполняемый при старте загрузки
my_lst.onLoadStart = function(target_mc:MovieClip) {
_root.preloader._visible = true;
};
//код, выполняемый при инициализации
my_lst.onLoadInit = function(target_mc:MovieClip) {
target_mc._height = 0;
target_mc._width = 0;
};
//создание массива из загружаемых изображений и их обработка
var massimages = new Array('img/main.jpg', 'img/izd1.jpg');
okload = true;
for (i=0; i<massimages.length; i++) {
clip = _root.createEmptyMovieClip("cont_mc"+i, i);
_root["cont_mc"+i]._visible = false;
_root.my_mcl.loadClip(massimages[i],clip);
}
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! Последний раз редактировалось TanaTiX; 19.03.2008 в 23:40. |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Цитата:
Логика странная. Обычно: 1) один СВФ, который весит до 2-3 кБ (прелоадер), подгружает другой СВФ, или 2) В самом СВФ делается два кадра - первый для отображения самозагруженности, а во втором, основной управляющий код. У Вас как организовано? Цитата:
Очень интересно.
__________________
john |
|
|||||
|
Как оказалось проблема была не в тех 2х строчках. Просто все нормально отображалось в самом флеше, а тесты непосредственно в сети были отложены. Вот теперь и повылезали странные баги...
![]() Molecula, вот я как раз про 2й вариант, у меня прелоадер в 1м кадре. Просил глянуть знакомого - у него все работает нормально (эксплорер+виста), но меня это как-то не особо радует Тот код убрал, но это проблему не решает. ЗЫ. Кстати, как лучше создавать прелоадер, в отдельном файле или отдельном кадре? (имеется в виду для больших проектов)
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! Последний раз редактировалось TanaTiX; 20.03.2008 в 13:11. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Я практикую в отдельном файле. Причины две:
1. Писать код прилоадера во фрейме мне не удобно, хочу класс. А все классы грузяться одновременно. 2. Используя в прелоадере такой же шрифт как и в основном проекте, приходится импортировать весь шрифт в кадр прелоадера. Так как нельзя грузить часть символов шрифта в одном кадре, а часть в другом. В итоге, обе причины приводят к увеличению размера кадра с прелоадером, и в результате загрузка начинается не с 0%, а с гораздо больших значений. Последний раз редактировалось iNils; 20.03.2008 в 14:08. |
|
|||||
|
iNils, учту на будущее.
Может кого наведет на умные мысли... Вот ссылка на мою рабочую версию. http://rrs.ho.com.ua/ (не сочтите за рекламу, там рекламировать нечего)
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|