Другие языки программирования и технологии

Подскажите как сделать что бы отображалась гиф-анимация пока грузится большой флеш.

OM
Oleg Makarcov
229
Ольга, во флеш прелоадер делается в самом флеш-ролике. Это удобнее - поскольку джаваскрипт (и все остальное на странице) не всегда "знает" - загрузился ли объект, а тем более - в какой стадии загрузки он находится. - Флеш может состоять из многих файлов, подгружаемых динамически, а не только из одного.

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

С флеш все хуже. Даже если весь флеш в одном файле, то onload вообще не передается в старых эксплорерах. Есть решение проблемы, но ни разу не проверял работу с ним. Делается проверка object.readyState с интервалом по типу:

var intv=setInterval(function(){
if(document.getElementById('my_flash').readyState==4){
clearInterval(intv);
/* тут делаем что нужно - например ставим объект вместо картинки - если объект загружался в другой, скрытый блок */
}
}, 100 );

Я сомневаюсь, будет ли работать.. .-У мелкомягких readyState не применим к Object по документации.

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

Если флеш простой - один огромный файл swf, то его можно загрузить в другой "невидимый" контейнер. А потом, после загрузки (проверка состояния загрузки см. выше) переместить в необходимое место. Проблема еще и в том, что роликом невозможно управлять (остановить воспроизведение, например) , если в самом ролике это не предусмотрено.
~~!!денис!!~~ ))
~~!!денис!!~~ ))
60 969
Лучший ответ
Прелоадер для изображений на javascript есть он будет для любого элемента работать.
http://javascript. ru/forum/misc/7373-preloader-dlya-izobrazhenijj.html
РХ
Роман Хазов
55 483