Вызов 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. На этом работа завершена.
|