Совместное использование OperatedPreLoader и OperatedImageViewer
В этом примере показано использование методов апплета OperatedPreLoader
для получения и проверки изображений а также методов апплета OperatedImageViewer.
Апплет OperatedPreLoader скрыт от пользователя.
Нажатие кнопки "Next" выводит следующее по порядку изображение, хранимое апплетом
OperatedPreLoader в окне
апплета OperatedImageViewer с увеличением в 1.2 раза.
Если в этот момент демонстрируется последнее в списке изображение, то выводится первое.
Кнопка "Effect" работает аналогично кнопке "Next" с той разницей, что
изображения выводятся с эффектом "раскрывающегося рисунка".
...
<APPLET NAME="preloader" CODEBASE="applets" CODE="OperatedPreLoader.class"
ARCHIVE="imager.zip" WIDTH="0" HEIGHT="0">
<PARAM NAME="filenmlist" VALUE="im1.jpg im2.jpg im3.jpg im4.jpg
im5.jpg im6.jpg im7.jpg">
</APPLET>
<APPLET NAME="viewer" CODEBASE="applets" ARCHIVE="imager.zip" CODE="OperatedImageViewer.class"
WIDTH=360 HEIGHT=240>
<PARAM NAME="picture" VALUE="im1.jpg">
<PARAM NAME="align" VALUE="center">
<PARAM NAME="bgcolor" VALUE="C0C0C0">
<PARAM NAME="scale" VALUE="1.2">
</APPLET>
<FORM>
<INPUT TYPE="button" VALUE="Next" onClick="showNext()">
<INPUT TYPE="button" VALUE="Effect"
onClick="showNextIncreasing()">
</FORM>
...
В начало страницы
<SCRIPT LANGUAGE="JavaScript">
<!--
/*Хранит индекс текущего изображения */
index = 0;
/* Начальный массштаб для эффекта "раскрывающегося рисунка" */
firstscale = 0.1;
/* Конечный массштаб для эффекта "раскрывающегося рисунка" */
lastscale = 1.2;
/* Множитель, на который умножается массштаб для эффекта "раскрывающегося рисунка" */
multiplier = 1.1;
/* Интервал, через который изменяется массштаб для эффекта "раскрывающегося рисунка" */
interval = 50;
/* Хранит массштаб текущего изображения для эффекта "раскрывающегося рисунка" */
scl =1;
/* Демонстрирует следующее по порядку изображение */
function showNext(){
if (index >= document.applets.preloader.getCount()-1) index=0;
else index++;
/* Если OperatedPreLoader успешно загрузил текущее изображение, то получаем его и передаем
в OperatedImageViewer для демонстрации, в противном случае получаем имя файла текущего изображения
и OperatedImageViewer загружает и демонстрирует его самостоятельно */
if (document.applets.preloader.isSuccess(index)){
pict = document.applets.preloader.getImage(index);
document.applets.viewer.replaceImage(pict, 1.2);
}
else{
filenm = document.applets.preloader.getFileName(index);
document.applets.viewer.loadImage(filenm, 1.2);
}
}
/* Демонстрирует следующее по порядку изображение с эффектом "раскрывающегося рисунка"
function showNextIncreasing(){
if (index>=document.applets.preloader.getCount()-1) index=0;
else index++;
if (document.applets.preloader.isSuccess(index)){
pict = document.applets.preloader.getImage(index);
/* Вывод текущего изображения в начальном массштабе */
document.applets.viewer.replaceImage(pict, firstscale);
/* Запуск "эффекта раскрывающегося изображения" */
startIncrease(firstscale);
}
else{
filenm = document.applets.preloader.getFileName(index);
document.applets.viewer.loadImage(filenm, firstscale);
/* Запуск "эффекта раскрывающегося изображения" */
startIncrease(firstscale);
}
}
/* Вызывает функцию для изменения массштаба с интервалом interval (ms) */
function startIncrease(sc){
scl=sc;
delay=
window.setInterval("increasingImage(lastscale)",interval);
}
/* Увеличивает массштаб выводимого излбражения в multiplier раз. Когда массштаб достигает
maxscale отменяет последующие вызовы самой себя путем очистки интервала */
function increasingImage(maxscale){
if (scl < maxscale){
scl = scl*multiplier;
if (scl >= maxscale) scl = maxscale;
document.applets.viewer.changeScale(scl);
}
else window.clearInterval(delay);
}
// -->
</SCRIPT>
В начало страницы
|