месте на картинке «перемещаются» в другое место при замене Web-браузером те- кущего изображения следующим.
ПРАКТИКУМ
Добавив в дескриптор событие onLoad, вы можете дать Web-браузеру ука — зание заменять изображение, вставленное дескриптором в код страницы, другой картинкой всякий раз, когда браузер завершает загрузку изображения. Чтобы представить себе, как происходит этот процесс, следует понимать, что Web-брау —
зер активирует обработчик события onLoad после того, как загрузит (то есть ото- бразит) изображение на Web-странице. Следовательно, приведенный ниже деск —
риптор отобразит картинку из файла Framei. jpg. Затем браузер инициирует обработчик события onLoad, который, в свою очередь, вызовет (оп —
ределенную Пользователем) ФУНКЦИЮ nextlmage():
onLoad=»nextImage(document. animation, src)»>
Функция nextimage() создает анимационный эффект. Как вы увидите из
приведенного ниже кода, всякий раз, когда Web-браузер вызывает nextimage(),
43 6 Глава 8. JavaScript
функция изменяет свойство sr c изображения с именем animation в массиве изображений объекта документа. В результате изменения свойства sr c Web-брау — зер загружает (то есть отображает) другое изображение, что, в свою очередь, ини — циирует событие onLoad, и процесс повторяется:
function nextlmage(ImageSource)
{
var i = ImageSource. indexOf (M. jpg»,0);
var NextFrame = ImageSource. substring(i-1, i) ;
if (NextFrame == «1″) I И
document. animation. src = «Frame2.jpg»;
else if (NextFrame == «2″)
document. animation. src = «Frame3.jpg»;
else if (NextFrame == «3″)
document. animation. src = «Frame4.jpg»;
else
document. animation. src = «Framel. jpg»;
return;
}
// —>
Анимация, отображаемая приведенным выше кодом, состоит из четырех кад- ров (то есть четырех разных картинок) и повторяется бесконечно. Чтобы остано —
вить анимационную последовательность после того, как она будет воспроизведе —
на один раз, удалите два оператора перед оператором return ; функции. Если вы не загрузите первое изображение снова после загрузки последнего, браузер вызовет
nextimageо еще раз после загрузки Frame4.jpg. Однако во время последнего про —
хода nextlmage () не изменяет СВОЙСТВО src изображения С Именем animation, ПО — скольку ни один из операторов if функции не оказывается истинным. В результате анимация останавливается, поскольку Web-браузер больше не инициирует событие onLoad, так как функция не дала браузеру указания загрузить другую картинку.