PDA

Просмотр полной версии : Как остановить загрузку SWF программным методом


Jim
19.12.2013, 18:11
Попробовал заделать SWF'шку с прелоадером, данные в которой будут загружаться только по нажатии кнопки, а не сразу при запуске.

Как пытался это устроить, в двух словах:
В классе прелоадера коммандой stop(); (или в первом кадре Flash IDE, без разницы) торможу проигрывание на первом кадре, в котором (уже посредством Flash IDE) я расположил кнопку Play.
По нажатию этой кнопки, должно происходить следующее:
- Мы перескакиваем на кадр, в котором подгружается MovieClip "Heap" со всем содержимым библиотеки.
- И далее запускаем EventListener, в скрипте прелоадера, который кодом вырисовывает полосу загрузки, обновляя ее до тех пор, пока все не будет загружено.
- После загрузки, полосу удаляем и перескакиваем на третий кадр, который уже является рабочим.

Сколько не колдовал - по нажатию на Play полоса загрузки показывает, что данные SWF'шки все равно загружаются с первого кадра, нажал я Play или нет. То есть, если после запуска программы подождать достаточно долго - ролик загрузится весь и при клике процесс загрузки мы не заметим вовсе, и сразу перейдем на рабочий кадр.

Прежде, чем выкладывать код, хочу узнать - задумку вообще реально реализовать, без вмешательства второго SWF? SWF-документ по любому подгружается всегда весь?

Добавлено через 3 часа 44 минуты
Выяснил, что нельзя. Загрузив первый кадр, качаются и все остальные.

Спасибо ребят, мощный фидбэк тут.

dimarik
19.12.2013, 22:43
Вы пытаетесь остановить загрузку основной и единственной swf из нее самой?

Jim
19.12.2013, 22:52
Я новичок. Из-за того, что содержимое библиотеки настраивается в плане "в который кадр ее экспортнуть" и из-за того, что загрузку данных можно отследить - возможность ее остановки мне показалась логичной.

dimarik
19.12.2013, 22:53
Файл скачается полностью.

in4core
20.12.2013, 02:57
Файл скачается полностью. Дима , а если с прелоадером [Frame] - можно же поидее остановить :)

alatar
22.12.2013, 16:22
а если с прелоадером [Frame]
Технически это не отличается от того, что делает ТС.
можно же поидее остановить
Нельзя. Ссылки на лоадер нет.

in4core
22.12.2013, 22:11
stage.loaderInfo.loader?

alatar
23.12.2013, 12:39
А проверить?

in4core
23.12.2013, 13:29
а ну ладно)