Скрытая подгрузка изображений

HaZ

Новичок
Скрытая подгрузка изображений

Грубо говоря

Есть js скрипт который формируем анимацию из нескольких png-шек

Мои действия

vat param = document.createElelemt('IMG');
- далее параметры
потом appendChild

Далее циклом из 9-раз следующее
ar = new Array(somename + i + '.png')

Далее пытаюсь сделать анимацию и через каждые 20 милесекунд
делаю подобно следующему
param.src = ar.src

И что вижу ? Первый запуск пытается сделать анимацию но судя по всему не успевает подгрузить изображения. Лиш через 2-3 секунды после начала выполнения скрипта изображения подгружаются. Не закрывая браузер повторные тесты успешны т.к. картинки откешировались.

Тестировал на своей машине и даже при этом картинки не успели подгрузиться сразу


В чем проблема ? Скрипт начинает выполняться раньше чем загрузятся все картинки ?
new Image() не посредственно подгружает в память картинку или лишь записывает ссылку, чтобы загрузить картинку лишь при непосредственном отображении переменной ?

Есть ли способ вначале загрузить все незаметно от пользователя и лишь потом запускать скрипт анимации ?

Заранее благодарен любым советам
 

Angerslave

Новичок
Совет: использовать для анимации инструменты, которые для неё предназначены.
 

HaZ

Новичок
Спасибо за отклик.

От гифов я отказался - надеюсь не нужно объяснять почему.

Ваши инструменты могут создать анимацию, но не позволят контролировать ее скорость в зависимости от желания пользователя. Мои тайминги контролируются и должны контролироваться.

Плюс иногда кол-во кадров равно как и сами в картинке варьируется в зависимости от условий.

Вариант отпадает.

-~{}~ 12.09.08 17:46:

kruglov
т.е. событие onload сработает только когда абсолютно вся страница со всеми картинками загружена?

спасибо, попробую

правда это сработает если new Image действительно сразу загружает в себя картинку
 

kruglov

Новичок
x=new Image();
x.src="xxx.gif";

"действительно сразу загружает в себя картинку"

опасайтесь делать так:

x=new Image();
x.src="xxx.gif";
x=new Image();
x.src="yyy.gif";

загрузится только последняя, используйте разные переменные (элементы массива)
 
Сверху