Иллюстрированный самоучитель по WEB-графике

       

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



    • Содержание раздела