Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Когда возращает управление функция loadMovie() (http://www.flasher.ru/forum/showthread.php?t=47428)

Sergey (U4) 30.07.2003 16:27

Когда возращает управление функция loadMovie()
 
Ситуация следующая: в клипе при выборе пункта меню в клип-заглушк загружается 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()?

Useless 30.07.2003 21:21

Вообще-то обычно всё работает, как надо.
То есть - внешний ролик подгружается, а исходный работает независимо.

Может, исходник выложишь?

Да, а у тебя там и правда 80 мег подгружается?

Sergey (U4) 30.07.2003 21:59

В исходнике нет ничего особенного (банальный вызов этой приславутой loadMovie при нажати на пункт меню). Но прога виснит до тех пор пока не загрузится swf - это факт (клип, выполняющий роль указателя мышки, перестает на время загрузки двигаться и вообще не проигрывается). Лучше кто нибудь мне показал пример,где выводится процеесс загрузки внешнего swf.

Useless 31.07.2003 00:37

Похоже, дело действительно в том, что грузится с локального диска. У меня похожая фигня, только там размеры поменьше.

Прелоадеров - дохренищи в разделе "исходники".

Sergey (U4) 31.07.2003 14:57

Предзагрузчик способен написать практически любой пользователь Flash. Только вот работающего preloader'a в связке с loadMovie(), я к моему сожалению еще не видел.

P.S. Спасибо всем, кто вместе со мной пытался разобраться в этом вопросе.

Krisha 31.07.2003 21:19

Вот такой код у меня отрабатывает нормально, это конечно не супер-пупер, но работает:

код этот стоит на 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....

Вот такие дела ...


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

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