ВУЗ:
Составители:
Рубрика:
Еще один характерный прием – применение функции отложенного исполнения JavaScript-кода (eval()):
function def()
{
for(i=0;i<32;i++)
{
eval("document.m"+i+".src=mono["+i+"].src");
}
for(i=0;i<5;i++)
{
eval("document.r"+i+".src=rm["+i+"].src");
}
}
В данном случае eval() избавляет нас от необходимости набирать операции присваивания.
Мультипликация. Естественным продолжением идеи замещения значения атрибута SRC в теге IMG является мультип-
ликация, т.е. последовательное изменение значения этого атрибута во времени. Для реализации мультипликации используют
метод объекта Window – setTimeout().
Собственно, существуют два способа запуска мультипликации:
• onLoad();
• onClick(), onChange() ...
Наиболее популярный – setTimeout() при onLoad().
Событие onLoad() наступает в момент окончания загрузки документа браузером. Обработчик события указывается в
теге BODY:
...
<BODY onLoad="JavaScript_code">
...
В нашем случае при загрузке документа должен начать выполняться цикл изменения картинки:
function movie()
{
eval("document.images[0].src='clock"+
i+".gif';");
i++;if(i>6) i=0;
setTimeout("movie();",500);
}
...
<BODY onLoad="movie();">
...
В примере используется бесконечный цикл, хотя можно реализовать и конечное число подмен:
function movie()
{
eval("document.images[0].src='clock"+
i+".gif';");
i++;
if(i<7)
{
setTimeout("movie();",500);}
}
...
<BODY onLoad="movie();">
В обоих примерах следует обратить внимание на использование метода setTimeout(). На первый взгляд, это просто
рекурсия. Но в действительности все несколько сложнее. JavaScript разрабатывался для многопоточных операционных сис-
тем, поэтому правильнее будет представлять себе исполнение скриптов следующим образом:
1. Скрипт получает управление при событии onLoad().
2. Заменяет картинку.
3. Порождает новый скрипт и откладывает его исполнение на 500 миллисекунд.
4. Текущий скрипт уничтожается JavaScript-интерпретатором.
После окончания срока задержки исполнения все повторяется. В первом примере (бесконечное повторение) функция
порождает саму себя и тем самым поддерживает непрерывность своего выполнения. Во втором примере (конечное число
итераций) после девяти повторов функция не порождается. Это приводит к завершению процесса отображения новых карти-
нок.
Страницы
- « первая
- ‹ предыдущая
- …
- 95
- 96
- 97
- 98
- 99
- …
- следующая ›
- последняя »