Просмотр полной версии : Когда возращает управление функция loadMovie()
Sergey (U4)
30.07.2003, 16:27
Ситуация следующая: в клипе при выборе пункта меню в клип-заглушк загружается 80мб swf, в котором есть preloader.
В итоге: в момент загрузки клип виснит секунд на 3-5, после чего в загружаемом swf preloader сразу стартует с 100%.
Если к клипу-заглушке прикрепить обработчик события enterFrame c кодом trace( getBytesLoaded() + "из" + getBytesTotal(), то картина следущая:
4 из 4
4 из 4
4 из 4
(момент вызова loadMovie - зависание на 3-5 сек)
81920000 из 81920000
81920000 из 81920000
81920000 из 81920000
Никакого намека на паралельность работы программы и загрузки внешнего клипа. Выходит, что loadMovie() ждет окончания загрузки клипа и лишь потом возращает управление в программу, ее вызвавшую.
Вопрос: у кого-нибудь есть работающий пример, в котором после некоторого события (пр. нажатия кнопки) загружается внешний swf, а на экране отображаются данные о процессе его загрузки?
Dimonius
30.07.2003, 17:24
На локале, прелоадеры не работают, потому что система всегда возращает полное количество.
Sergey (U4)
30.07.2003, 18:44
Почему не работают. Да дело даже не в предзагрузчике, почему movie'k виснит, ожидая когда полностью загрузится внешний swf. При обычном проигровании movie'ка flash player же не ждеть полной загрузки клипа, начинает проигровать с первого загруженного кадра, почему тоже самое не происходит в случае с loadMovie()?
Вообще-то обычно всё работает, как надо.
То есть - внешний ролик подгружается, а исходный работает независимо.
Может, исходник выложишь?
Да, а у тебя там и правда 80 мег подгружается?
Sergey (U4)
30.07.2003, 21:59
В исходнике нет ничего особенного (банальный вызов этой приславутой loadMovie при нажати на пункт меню). Но прога виснит до тех пор пока не загрузится swf - это факт (клип, выполняющий роль указателя мышки, перестает на время загрузки двигаться и вообще не проигрывается). Лучше кто нибудь мне показал пример,где выводится процеесс загрузки внешнего swf.
Похоже, дело действительно в том, что грузится с локального диска. У меня похожая фигня, только там размеры поменьше.
Прелоадеров - дохренищи в разделе "исходники".
Sergey (U4)
31.07.2003, 14:57
Предзагрузчик способен написать практически любой пользователь Flash. Только вот работающего preloader'a в связке с loadMovie(), я к моему сожалению еще не видел.
P.S. Спасибо всем, кто вместе со мной пытался разобраться в этом вопросе.
Вот такой код у меня отрабатывает нормально, это конечно не супер-пупер, но работает:
код этот стоит на MC, в который собственно происходит загрузка (_root.MyClip):
onClipEvent (data) {
totalBytes = this.getBytesTotal();
loadedBytes = this.getBytesLoaded();
if (totalBytes >= 1) {
_root.Preloader._visible = true;
_root.Preloader.Indicator._width = Math.floor( (loadedBytes / totalBytes) * 100 );
}
if ( loadedBytes >=1 and totalBytes >= 1 and loadedBytes == totalBytes) {
_root.Preloader._visible = false;
}
}
А это фунция, которая загружает:
function LoadLesson (LessonName) {
_root.MyClip.loadMovie(LessonName);
}
Sergey (U4)
31.07.2003, 23:56
Очень странно. Опять неудача. Для клипа-заглушки, куда загружается внешний swf, пишу, как ты посоветовал:
onClipEvent (data) {
totalBytes = this.getBytesTotal();
loadedBytes = this.getBytesLoaded();
trace(loadedBytes);
/*if (totalBytes >= 1) {
_root.Preloader._visible = true;
_root.Preloader.Indicator._width = Math.floor( (loadedBytes / totalBytes) * 100 );
} if ( loadedBytes >=1 and totalBytes >= 1 and loadedBytes == totalBytes) {
_root.Preloader._visible = false;
}*/
}
Итог: теже 3-5 сек. тишины (кнопка даже залипает), предзагрузчик все это время спит мертвым сном, хотя я ожидал, что 3-4 разных значений loadBytes отрассируется.
Если тебя не затруднит, пришли мне на почту свой какой-нибудь работающий пример (*.fla или *.swf). ufo@starlink.ru
Sergey (U4)
01.08.2003, 14:03
Спасибо за пример, но мне нужно, чтобы предзагрузчик отражал процесс загрузки внешнего swf, а не главного моvie'ka.
Вместо "001.swf", я пишу путь к своему 80 мб swf, что приодит к уже известным последствиям. Прога виснит, до тех пор пока не загрузится целиком swf, никакого процесса загрузки preloader не отображает. Кнопка "GO" залипает на время подзагрузки в нешнего swf в положении down....
Вот такие дела ...
а разве 001.swf не внешний ?
лично мне кажется, что глюк именно в размере погружаемого мува...
Может проблема именно в том, что проигрыватель офигевает от такой 80-метровой шняги.
Насчет прелоадеров - пробуйте тестировать на флопах. Не очень сильно, но все-таки помогает.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.