Вызов JScript из ActionScript
Здесь мы рассмотрим пример взаимодействия фрагментов сценария на JScript с Flash-мультфильмом. Мы хотим использовать средства JScript во Flash-мультфильме. Фрагменты сценария (функции) на JScript и мультфильм встроены водим и тот же HTML-документ. В нашем примере мультфильм содержит три кнопки, щелчки на которых обрабатываются функциями, написанными на JScript. Заметьте, речь идет об обработке событий не с помощью ActionScript, а посредством JScript! Сценарий на ActionScript должен только вызвать нужную функцию JScript. Идея организации такого взаимодействия состоит в том, чтобы в действиях Flash-мультфильма использовать следующую конструкцию:
getURL ("javascript :имя_функции (параметры) " ) ,
где имя_функции(параметры) — функция, описанная в скрипте в HTML-документе на языке JScript.
Всю работу разобьем на два этапа: сначала создадим HTML-код, а затем мультфильм.
Этап 1. Создание HTML-файла Порядок действий:
- 1. Создадим новый HTML-файл с именем myhtml.htm.
- 2. В этом файле между тэгами <HEAD> и </HEAD> напишем три функции, которые потом будем вызывать из Flash-мультфильма и передавать им некоторые параметры. Эти функции обрамим тэгами <SCRIPT> и </SCRIPT>.
Итак, сценарий на JScript в HTML- документе выглядит следующим образом:
<SCRIPT LANGUAGE=" JScript"> // Первая функция принимает 3 параметра function openNewWindow (my URL, my_width, my_height) { // Это — функция открытия окна. // my_width - переменная, которая будет передавать /принимать // значение ширины, // my_height - переменная, которая будет передавать/принимать // значение высоты. Ниже расположен код самой функции. myNewWindow=window . open (myURL, ' sample ' , ' toolbar=no, bar=no, location=no, status=no,menubar=no, scrollbars=no, resizable=no,width=' +my_width+ ' , height=' -fmy_height+ ' , top=0, lef t=0 ' ) ; // Параметры в методе ореп() : // myNewWindow - имя нового окна в иерархии, // myURL - URL-адрес открываемого нового документа, // остальные параметры отвечают за отсутствие/присутствие // элементов интерфейса в новом окне (панели инструментов, меню / / и т.д.), // width= ' +my_width+ ' - параметр, отвечающий за ширину, // height= ' -mny height-*-' - параметр, отвечающий за высоту. // Вторая функция - это просто окно с предупреждением, // которое мы передадим из Flash-мультфильма. function message (message) { alert (message) ; } // Здесь message - передаваемое сообщение. // Третья функция закрывает окно, открытое первой функцией. // Обращение к окну - по имени myNewWindow. function closeMain(){ myNewWindow . close ( ) ; </SCRIPT>
Между тэгами <BODY> и </BODY> вставим тэг <OBJECT>, задающий встраивание Flash-проигрывателя с нашим мультфильмом. Мультфильм мы будем хранить в файле myflash.swf. В результате должен получиться следующий HTML-код:
<HTML> <HEADXTITLE> Взаимодействие Flash и JScript</TITLE> <SCRIPT LANGUAGE="JScript"> <!== Функция открытия окна ==> function openNewWindow(myURL,my_width,my_height) myNewWindow=window.open (myURL, ' sample' , ' toolbar=no,bar=no, location=no, status=no, menubar=no, scrollbars=no, resizable=no, width= ' +my_width+ ' , height= ' +my_height+ ' , top=0, left=0 ' ) ; < ! == Функция вывода сообщения ==> function Message (message) ( alert (message) ; / } <!== Функция закрытия окна ==> function closeMain()( myNewWindow . close () ; } </SCRIPT> </HEAD> <BODY bgcolor="#000033"> <!- Вставляем Flash-мультфильм—> <A HREF=javascript:openNewWindow('temp.html',600,200)></A> <OBJECT classid="clsid:D27CDB6E-AE6D-llcf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shoekwave/cabs/flash/ swmyflash.cabttversion=5, 0,0,0" WIDTH=400 HEIGHT=300> <PARAM NAME=movie VALUE="myflash.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#000033> <EMBED src="myflash.swf" quality=high bgcolor=#000033 WIDTH=400 HEIGHT=300 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http:/ /www.macromedia.com/shockwave/download/ index.cgi?Pl_Prod_Version=ShockwaveFlash"> </EMBED> </OBJECT> </BODY> </HTML>
Этап 2. Создание Flash-мультфильма Порядок действий:
- 1. В редакторе Flash создадим новый файл myflash.fla.
- 2. Создадим три произвольные кнопки. Для этого нарисуем произвольную фигуру, нажав клавишу <F8> (конвертировать в символ), выберем тип символа Button и затем просто скопируем его в рабочую область три раза. Можно также воспользоваться библиотекой символов (Window>Common Libraries > Buttons).
- 3. Последовательно вставляем в каждую из кнопок следующие действия:
- Кнопка1 (открытие файла temp.htm в новом окне):
on (release) { getURL("javascript:openNewWindow('temp.html1,600,200)")
}
- Кнопка2 (вывод сообщения):
on (release) { getURL("javascript:message('Мое сообщение')"); }
- КнопкаЗ (закрытие окна):
on (release) { getURL("javascript:closeMain()"); }
- 4. Делаем публикацию (клавиши <F12> или <Shift>+<F12>), чтобы получить файл myflash.swf. Что такое публикация, более подробно рассказано в разделе 9.8. На этом работа завершена.
|