Просмотр полной версии : LoadMovie - фоновое мигание при закрузке мувика
В ролик командой LoadMovie подгружается мувиклип 2.swf, меняющий имеющийся мувиклип 1.swf (на 1 уровне). При этом в момент загрузки, после 1.swf и перед 2.swf, на долю секунды проявляется пустой фон, без мувиклипов. В чем здесь может быть проблема? Спасибо.
В том, что загрузка не происходит мгновенно. И отрисовка загруженного также мгновенно не происходит.
Переходите на MovieClipLoader. По событию onLoadInit выгружайте или удаляйте 1.swf и показывайте загруженный 2.swf
В том что 2.swf уже загружен и готов к показу, и скажет это событие. Слушать это событие будет слушатель, в качестве которого в примере ниже используется сам _root (для понимание это плохо, но так написалось :), новичку в работе с этим классом лучше отдельный объект-слушатель создавать, как в хелпе).
Читаем и изучаем работу класса MCL.
А грубое решение во вложении. Вместо контейнеров можно в принципе и уровни использовать, метод это допускает, но обычно создаем пустые мувики-контейнеры.
Спасибо. Т.е. метод LoadMovie фактически неработоспособный, т.к. при его использовании всегда проявляется фоновое мигание?
Использовать LoadMovie вообще не нужно, т.к. он, например, не дает возможности отследить момент загрузки. Устарел он уже примерно лет 7 назад.
Понятно. Отстал я от жизни и прогресса.:) Жаль LoadMovie, он куда проще и понятнее.
Только проблем с ним больше и нерешаемых задач.
Причем большинство проблем проявляются при заливке проекта на сервер, когда начинает проявляться асинхронность работы кода относительно готовности загружаемых данных.
А нет ли возможности при использовании LoadMovie (сорри за настырность) сделать так, чтобы предыдущий ролик выгружался с некоторой задержкой после команды на загрузку следующего ролика, т.е. таким образом избежать паузы?
Все упирается в то, что с LoadMovie вы не знаете, когда у вас закончилась загрузка 2.swf.
Можно было бы запустить загрузку заранее, но каналы у всех разные.
В общем, забудьте про LoadMovie, LoadVariables и пр., иначе всегда будете с костылями ходить.
Точно говорю - потратьте пару часиков на MCL.
Признаюсь, я начисто не воспринимаю программирования сложнее TellTarget или т.п., да и потребность в подобном возникает крайне редко. А как можно запустить загрузку заранее (в данном случае достаточно на 1-2 кадра придержать предыдущий мувик)?
Добавлено через 6 минут
Видимо, сочетая LoadMovie и unLoadMovie чередующихся мувиков?
Гм. Я уже сказал вам, что с с LoadMovie вы никогда не знаете, когда у вас закончилась загрузка 2.swf.
Поэтому насколько заранее - никто не знает.
Можно конечно, попробовать останавливать таймлайн, использовать разные лоадеры на основе "трехкадровых циклов", и прочую чушь, но зачем, когда уже есть четкий механизм, разработанный для решения этих проблем.
Можете еще загрузить сразу всё, и показывать по очереди с помощью свойства _visible.
А для загрузки всего используйте прелоадер, на форуме полно примеров.
Способы использования костылей и их модели, честно говоря, обсуждать не оч. интересно. :) Как однозначно решить задачу, я вам дал пример.
Спасибо можете сказать, если что, нажав на кнопочку весов справа. :)
В принципе, в данном случае я могу судить, насколько последующий мувик должен перекрывать предыдущий (они весят 10-15 кб), т.е. достаточно перекрытия в один кадр. Я попробовал выгружать предыдущий мувик на один кадр позже закрузки следующего, и, похоже, такая примитивная схема сработала.:)
Хотя для более серьезных случаев без ваших рекомендаций, очевидно, не обойтись. Спасибо за совет.
Положите на сервер или используйте эмуляцию загрузки прямо во Adobe Flash, могут быть сюрпризы с выгрузкой на один кадр позже.
Если, конечно, у вас не десктопное приложение будет. Кстати, подозреваю, что прямоугольником дело не ограничится, а значит подгружаемые ролики будут тяжелее, так что фактор асинхронности проявится сильнее...
Готовые ролики весят порядка 10 кб, прямоугольники - это условно для простоты примера. Да, окончательно, конечно, буду смотреть уже после размещения на сервере.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.