Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Листинг 5.3. Файл chapter5/noise/noise2. html




<HTML>

<HEAD>

<TITLE>Animation with JavaScript</TITLE>

var nNumberOfImages = 18;

var i=1;

var bForward=true;

var imgArray = new Array(18);

function loadAlllmages(nNumberOfImages)

{

var i;

for(i=0; i<nNumberOfImages; i++)

{

imgArray[i] = newImage();

imgАггау[i].srс = "img0" + (i+1) + ".gif"; }

}

function showNextImage()

{

if(bForward)

i++;

if(i > 17)

{

bForward=false;

}

}

else

{

i--;

if(i < 2)

 

{

bForward=true;

}

}

document.lmg.src = imgArray[i-1].src;

setTimeout("showNextImage()", 100);

}

//-->

</SCRIPT>

</HEAD>

<BODY BGCOLOR=white>

<IMC SRC="img01.gif" NAME="Img">

<SCRIPT LANGUAGE="JavaScript">

<!--

loadAllImages(nNumberOfImages);

showNextImage();

//-->

</SCRIPT>

</B0DY>

</HTML>

 

У тілі документа HTML розташований сценарій, що викликає послідовно функції loadAllImages і showNextImage:

 

loadAllImages(nNumberOfImages);

showNextImage();

 

Функції loadAllImages у якості параметра передається загальна кількість зображень в анімаційній послідовності. У нашому випадку воно дорівнює 18.

Задача функції loadAllImages полягає в заповненні масиву об'єктів класу Image. Цей масив визначений в області заголовка документа HTML:

 

var imgArray = new Array(18);

 

Заповнення масиву виконується в циклі

 

var i;

for(i=0; i<nNumberOfImages; i++)

{

imgArray[i] = new Image();

imgArray[i]. src = "img" + (i+1) + ". gif";

}

 

Для кожного елемента масиву спочатку за допомогою ключового слона new створюється об'єкт класу Image, а потім установлюється значення властивості src цього об'єкта. Остання операція і призводить до инициированию завантаження файла зображення, виконуваної асинхронно.

Після того як масив заповнений, можна викликати функцію showNextImage. Вона ідентична описаної в попередньому прикладі, за винятком того, що для установки властивості src зображення Img використовуються елементи заздалегідь підготовленого масиву imgArray:

 

document. Img. src = imgArray[i-1]. src;

 

6. ВЗАЄМОДІЯ З АПЛЕТАМИ JAVA

Можна сказати, що сценарії JavaScript служать як би цементом для зв'язування різноманітних об'єктів, розташованих у документі HTML. Наприклад, за допомогою JavaScript можна опрацьовувати дані, отримані з полів однієї форми, і відображати результати опрацювання в полях тієї ж самої або іншої форми.

Ще одна цікава можливість взаємодії сценаріїв JavaScript з об'єктами документа HTML, що варто роздивитися, - це зв'язок сценаріїв і аплетов Java. Надається, із сценаріїв JavaScript можна обертатися до полів і методів аплетов Java.

Мові програмування Java присвячена третя частина даного курсу, що називається "Програмування в Internet. Частина 3. Основи мови Java". Перед тим як вивчати главу курсу "Взаємодія з аплетами Java", рекомендується ознайомитися з цією частиною.

6.1. Вбудовування аплета Java у документ HTML

Для того щоб вбудувати аплет у документ HTML, необхідно скористатися оператором <APPLET>, наприклад:

 

<APPLET

CODE=MyApplet. class NAME="MyApplet" ID=MyApplet WIDTH=320 HEIGHT=240>

</APPLET>

 

Припустимі параметри оператора <APPLET>:

Парамemp Опис

ALIGN Вирівнювання вікна аплета щодо навколишнього його тексту. Можливі такі значення:

LEFT - вирівнювання вліво щодо навколишнього тексту; CENTER - центрування; RIGHT - вирівнювання вправо щодо навколишнього тексту; ТОР - вирівнювання по верхній межі; MIDDLE - центрування по вертикалі; BOTTOM - вирівнювання по нижній межі.

ALT С поміччю цього параметра можна задати текст, що буде відображатися у вікні аплета в тому випадку, якщо браузер не може працювати з аплетами Java

CODE Ім'я двоичного файла, що містить код аплета. По умовчанню шлях до цього файла вказується щодо каталога з файлом HTML, куди умонтований аплет. Таке поводження може бути змінено параметром CODEBASE

CODEBASE Базова адреса URL аплета, тобто шлях до каталога, що містить аплет.

HEIGHT Початкова ширина вікна аплета в пикселях.

WIDTH Початкова висота вікна аплета в пикселях.

HSPACE Зазор зліва і справа від вікна аплета.

VSPACE Зазор поверх і знизу від вікна аплета.

NAME Ім'я аплета. Воно може бути використано іншими аплетами, розташованими в тому самому документі HTML, а також сценаріями JavaScript.

TITLE Рядок заголовка/

Додатково між операторами <APPLET> і </APPLET> можна задати параметри аплета. Для цього використовується оператор <PARAM>.

Користуючи операторами <PARAM>, розташованими в документі HTML відразу після оператора <APPLET>, можна передати аплету довільна кількість параметрів, наприклад у виді текстових рядків:

 

<APPLET CODE=MyApplet.class NAME="MyApplet" ID=MyApplet WIDTH=320 HEIGHT=240>

<PARAM NAME=ParamName1 VALUE="Param Value 1">

<PARAM NAME=ParamName2 VALUE="Param Value 2">

<PARAM NAME=ParamName3 VALUE="Param Value 3">

<PARAM NAME=ParamName4 VALUE="Param Value 4">

</APPLET>

 

Тут через параметр NAME оператора <PARAM> передається ім'я параметра аплета, а через параметр VALUE - значення відповідного параметра.

6.2. Виклик методів аплета Java із сценарію JavaScript

Сценарій JavaScript може одержати доступ до полів і методів аплетов, розташованих у документі HTML, адресуючись до аплетам як до елементів масиву document.applets.

Наприклад, для доступу до першому аплету можна використовувати стокові document.applets[0]. Проте зручніше вказувати ім'я аплета, задане в параметрі NAME оператора <APPLET>, наприклад document. MyApplеt.

Як приклад можна показати, як викликати зі сценарію JavaScript методи аплета Rectangles, описаного в згаданому вище 32-м томі "Бібліотеки системного програміста". Цей аплет малює і своєму вікні прямокутники випадкового розміру, зафарбовані випадковим цвітом.

Документ HTML створюється розміщенням у ньому аплета Rectangles і форми з кнопками Start Animation і Stop Animation.

Відразу після завантаження документа у вікні аплета запускается процес анимации. Якщо натиснути кнопку Stop Animation, малювання нових прямокутників буде припинено. За допомогою кнопки Start Animation можна відновити процес малювання.

Зауважимо, що, якщо помістити курсор миші в область вікна аплета, анимация буде зупинена, а коли курсор миші покине межі вікна аплета - знову запущена. Проте таке поводження визначається самим аплетом і не має відношення до сценарію JavaScnpt.

Вихідний текст документа HTML, що містить аплет і форму з кнопками, поданий у листинге 6.1.

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 447; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.