КАТЕГОРИИ: Архитектура-(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; Просмотров: 470; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |