IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в эту темуОткрыть новую тему
> Пролеадер програмно, непонятный глюк
Тарас
сообщение 5.10.2009 - 22:14
Сообщение #1


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Помогите найти ответ на непонятный глюк.
Создаю предзагрузчик програмно , ставлю код во 2-ой кадр Timeline
Код
if (_root.getBytesTotal() != _root.getBytesLoaded()) {
    gotoAndPlay(1);
    //якщо загальна кількість байтів не дорівнює загруженим переходимо на кадр 1
}
_root.createEmptyMovieClip("bar_mc", 1);
//створюєм новий пустий екземпляр мувікліпа і поміщаєм на перший рівень
bar_mc.lineStyle(2, 0xFF0000);
//задаєм стиль лінії для створенного мувіка
bar_mc.moveTo(200, 203);
//вказуєм місце розташування початку лінії
bar_mc.lineTo(((_root.getBytesLoaded()/_root.getBytesTotal())*100)+200, 203);
//вказуємо кінець лінії, який залежить від загружених байтів
_root.createTextField("loader_txt", 2, 243, 210, 50, 20);
//створюєм нове текстове поле на 2 рівні,вказуєм координати і розміри
loader_txt.text = Math.round((_root.getBytesLoaded()/_root.getBytesTotal())*100)+"%";
//рахуєм проценти і додаєм знак процентів
_root.createEmptyMovieClip("scope_mc", 3);
//створюєм і малюєм нижню лнію
scope_mc.lineStyle(1, 0x000000);
scope_mc.moveTo(197, 202);
scope_mc.lineTo(197, 205);
scope_mc.lineTo(304, 205);
scope_mc.lineTo(304, 202);

В 3 -ий кадр вставляю
Код
bar_mc.removeMovieClip();
loader_txt.removeTextField();
scope_mc.removeMovieClip();
//все лишнє видаляєм і зупиняєм кіно
stop();

и графический файл большого размера(по весу). Нажимаю Control=>TestMovie =>View=>Simulate Download
Все отлично тестируется, наблюдаю загрузку.
После теста удаляю графический файл и начинаю програмировать сайт . Где то на 5 или 6 кадрах при тестировании замечаю что при Simulate Download загрузчика своего не наблюдаю , вернее он появляется где то при загрузке 70% байтов а до этого белый экран.
В нет не выставлял, все тестировал на локалке. Почему так?
Да, еще добавлю, весь код на отдельном слое.

Сообщение отредактировал Тарас - 5.10.2009 - 22:16
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 5.10.2009 - 22:17
Сообщение #2


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Это значит, что основной вес находится в первом кадре.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 5.10.2009 - 22:30
Сообщение #3


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Цитата(chingachgoog @ 5.10.2009 - 23:17) *
Это значит, что основной вес находится в первом кадре.

Но он же пустой , даже кода нет никакого (IMG:style_emoticons/default/blink.gif)
А может и вправду так. Картинка была около 1Мб, а сайт практически без графики , вернее совсем без графики - все програмно создаю и вес соответственно совсем ничего до 100Кб

Сообщение отредактировал Тарас - 5.10.2009 - 22:37
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 7.10.2009 - 21:48
Сообщение #4


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Да нет. Причина не в весе. Загрузил часть сайта после предзагрузчика графикой - ниче не поменялось. Шкала предзагрузчика появляется где то на 70%. Тут что то другое, но я пока не могу найти.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 8.10.2009 - 12:09
Сообщение #5


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Графика или что-то еще тяжелое могут быть экспортированы в первый фрейм (надо смотреть параметры экспорта в библиотеке), также из-за этого в библиотеке может быть "забыто" нечто тяжелое.
В любом случае поможет "Generate size report".

Внутренние прелоадеры начинают работать только ПОСЛЕ того, как первый кадр загружен. И если внутренний прелоадер начал работать с 70%, значит первый кадр и весит 70%.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 12.10.2009 - 15:50
Сообщение #6


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Да , действительно, у меня около 70% клипов из библиотеки (при использовании attachMovie())експортированы в первый фрейм. Но как с этим бороться? Не использовать attachMovie()? Или есть другой выход? Поделитесь кто как решает эту проблему.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 12.10.2009 - 16:17
Сообщение #7


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Тарас @ 12.10.2009 - 16:50) *
Но как с этим бороться?


1) Использовать внешние прелоадеры (самый простой и надежный способ).
2) Обмануть пользователя (сделать псевдозагрузку до текущей, а потом, когда псевдозагрузка догонит настоящую, передать значения настоящей)
3) Экспортировать тяжелые вещи в любой другой фрейм, кроме первого.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 12.10.2009 - 16:44
Сообщение #8


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



chingachgoog, спасибо за советы. Думаю из трех вариантов что то сумею замутить.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 14.10.2009 - 16:17
Сообщение #9


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Решил вопрос с пролеадором созданием внешнего пролеадера. chingachgoog был прав это самый простой и надежный способ. Но на всякий случай решил испробовать и остальные варианты. Второй вариант слишком не удобный и заморочек тьма( вычислить , подогнать, подставить и т.д.). С 3 вариантом непонятка.
Цитата
3) Экспортировать тяжелые вещи в любой другой фрейм, кроме первого.

Это как? Из библиотеки экспортировать тяжелые вещи в любой другой кадр вручную и тогда вызывать их уже не из библиотеки , а обращаться к ним _root.myClip так как они уже на тайм лайне существуют. Так?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 14.10.2009 - 18:22
Сообщение #10


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Тарас @ 14.10.2009 - 17:17) *
Это как? Из библиотеки экспортировать тяжелые вещи в любой другой кадр вручную и тогда вызывать их уже не из библиотеки , а обращаться к ним _root.myClip так как они уже на тайм лайне существуют. Так?


Почти так.
В библиотеке ставим галку экспорта для скрипта, но НЕ СТАВИМ галку экспорта в первый кадр.
Далее, например, сбрасываем вручную эти объекты во второй фрейм. В третьем фрейме их на таймлайне, например уже нет, потому _root.myClip к ним не обратишься, но ПОСЛЕ второго фрейма они уже доступны для аттача программно.
А программа, например, сразу с первого кадра (где внутренний прелоадер, перескакивает на третий и второго кадра вообще никто не видит.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 14.10.2009 - 19:04
Сообщение #11


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Алгоритм понял. Спасибо.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 23.11.2009 - 16:37
Сообщение #12


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Цитата(chingachgoog @ 12.10.2009 - 16:17) *
1) Использовать внешние прелоадеры (самый простой и надежный способ).

А как это? (IMG:style_emoticons/default/laugh.gif)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 23.11.2009 - 17:57
Сообщение #13


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Создаем два мувика. Первый пролеадер , второй - основной фильм. Оба желательно в одной папке. Через loadClip в первый грузим второй.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 23.11.2009 - 18:17
Сообщение #14


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Цитата(Тарас @ 23.11.2009 - 17:57) *
Оба желательно в одной папке.

В смысле? Мы их классы создаем? и кладем их в одну папку с флешкой?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 23.11.2009 - 18:54
Сообщение #15


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Rotwang @ 23.11.2009 - 18:17) *
В смысле? Мы их классы создаем? и кладем их в одну папку с флешкой?


Нет. Классы - это всего лишь функции во флешке (физически есть один файл swf и в нем сколько угодно классов)
А внешний прелоадер - это физически отдельный файл swf.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 23.11.2009 - 20:28
Сообщение #16


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Цитата(chingachgoog @ 23.11.2009 - 18:54) *
Нет. Классы - это всего лишь функции во флешке (физически есть один файл swf и в нем сколько угодно классов)
А внешний прелоадер - это физически отдельный файл swf.

Значит, мне надо сделать флешку-прелоадер, разместить его где-то в интернете, а потом загрузить в основную флешку? Но ведь chingachgoog сказал
Цитата
Это потому, что все фотки находяться в первом кадре
Получается, после действия прелоадера, флешку нельзя будет перевести на 2-й кадр gotoAndPlay(2)?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 23.11.2009 - 20:48
Сообщение #17


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1135
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(Rotwang @ 23.11.2009 - 20:28) *
Значит, мне надо сделать флешку-прелоадер, разместить его где-то в интернете, а потом загрузить в основную флешку?


Почти так. Надо сделать флешку-прелоадер, запустить ее и грузить В НЕЁ свой тяжелый контент. Это и есть вариант с внешним прелоадером.

Цитата(Rotwang @ 23.11.2009 - 20:28) *
Получается, после действия прелоадера, флешку нельзя будет перевести на 2-й кадр gotoAndPlay(2)?


Не получается.
Во-первых, перевести на второй (любой) кадр можно.
Во-вторых - это не нужно. Т.к. речь шла о внутреннем прелоудере. А при использовании внешнего прелоудера мудрить с кадрами нет необходимости.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Тарас
сообщение 23.11.2009 - 21:04
Сообщение #18


Активный участник
***

Группа: Пользователь
Сообщений: 200
Регистрация: 20.04.2007
Пользователь №: 3496



Первый клип(прелоадер) состоит из одного кадра и в этот кадр ты загружаеш основной фильм, в созданый програмно, при помощи _root.createEmptyMovieClip("myClip_mc", 1); пустой экземпллляр клипа.

P.S. Как ты можеш увидеть тема была создана мной , у меня тоже были проблемы но уважаемый chingachgoog указал мне правильный путь к решению проблемы. Я прогуглил этот вопрос( уроки по внешнему прелоадеру в сети есть) изучил , написал свой и проблем нет.

Сообщение отредактировал Тарас - 23.11.2009 - 21:18
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 24.11.2009 - 16:52
Сообщение #19


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Цитата(Тарас @ 23.11.2009 - 21:04) *
P.S. Как ты можеш увидеть тема была создана мной , у меня тоже были проблемы но уважаемый chingachgoog указал мне правильный путь к решению проблемы. Я прогуглил этот вопрос( уроки по внешнему прелоадеру в сети есть) изучил , написал свой и проблем нет.

Да, спасибо, ребята! Сделал я наконец-то свой прелоадер. Даже уроки не понадобились, только ваши советы (IMG:style_emoticons/default/rolleyes.gif)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rotwang
сообщение 21.01.2010 - 20:10
Сообщение #20


Активный участник
***

Группа: Пользователь
Сообщений: 231
Регистрация: 28.02.2009
Из: Тюмень
Пользователь №: 9145



Начались проблемы у меня с этим прелоадером. Не загружает моя флешка другую!
Код такой (это с прелоудером).
Код
var mLoader:Loader = new Loader();
var mRequest:URLRequest = new URLRequest("simple_gallery.swf");
mLoader.load(mRequest);
//mLoader.x = 9;
//mLoader.y = 214;

mLoader.addEventListener(ProgressEvent.PROGRESS, prog);
mLoader.addEventListener(Event.COMPLETE, comp);
mLoader.addEventListener(Event.INIT, init);

function prog(e:ProgressEvent):void{
    moovik.gotoAndStop(Math.round(e.bytesLoaded/e.bytesTotal*100));
}
function comp(e:Event):void{
    removeChild(moovik);
}
function init(e:Event):void{
    
    addChild(mLoader);
}

Ни из локадьной папки на жестком не загружает, ни из интернета!
А БЕЗ прелоадера загружает и отображает все нормально
Код
var mLoader:Loader = new Loader();
var mRequest:URLRequest = new URLRequest("simple_gallery.swf");
mLoader.load(mRequest);
addChild(mLoader);

Как же это понимать?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

2 страниц V   1 2 >
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 18.06.2013 - 11:59