Общие сведения об ActionScript

Подробное описание возможностей и особенностей ActionScript выходит за рамки данной книги. Дело в том, что в результате последних усовершенствований, внесенных в версию Flash MX, ActionScript превратился в настоящий язык программирования. Реализованные в нем возможности вполне заслуживают отдельной книги, соизмеримой по объему (а возможно, и превосходящей) с той, которая сейчас перед вами. Разумеется, с ростом возможностей увеличилась и сложность языка. И хотя его вполне по силам освоить начинающему программисту, но все же — программисту. А ведь далеко не каждый даже опытный пользователь компьютера может считать себя таковым. Поэтому мы ограничимся описанием основных концепций языка и общих правил построения сценариев на ActionScript. Практика показывает, что такого уровня знаний вполне достаточно для создания не очень сложных, но корректно работающих интерактивных фильмов.

ActionScript позволяет создавать сценарий для клипа, кнопки или кадра. Каждый такой сценарий (то есть фактически программа на языке ActionScript) жестко связан с соответствующим элементом фильма. При публикации фильма текст сценария, как и другие элементы фильма, экспортируется в SWF-файл. Тем не менее, при желании вы можете сохранить его в отдельном файле с расширением .as (это обычный текстовый файл), чтобы впоследствии использовать в каком-либо другом фильме (или подарить другу).

Из сценария вы можете обратиться к любому другому объекту фильма (из числа кнопок, клипов и кадров) и даже к другому фильму или какому-либо внешнему сетевому ресурсу. Например, можно указать, что при достижении считывающей головкой кадра с номером 10 необходимо загрузить звуковой файл, расположенный на сайте www.sound.ru. Поэтому Flash должен знать, в каких «отношениях» состоят объекты, фигурирующие в сценарии. Некорректное обращение к объекту обязательно приведет к ошибке в сценарии. Скажем, запрошенный звуковой файл будет воспроизведен в 10-м кадре временной диаграммы фильма, вместо того, чтобы озвучить 10-й кадр конкретного клипа.

В связи с указанными выше обстоятельствами, перед началом работы с ActionScript полезно разобраться с двумя понятиями: объектная модель языка и контекст выполнения сценария.

Объектная модель ActionScript

Под объектной моделью понимается совокупность типов объектов, которые могут использоваться в сценарии, и отношения подчиненности между ними.

Напомним, что в языках программирования объект описывается набором атрибутов (свойств) и перечнем методов (процедур), которые могут быть применены, к этому объекту. Для каждого класса объектов определен свой набор атрибутов и методов. Например, для объекта «Кнопка» в качестве атрибутов могут использоваться метка, геометрические размеры, координаты, а в качестве метода — реакция на нажатие кнопки. Конкретный объект — это экземпляр соответствующего класса. Два экземпляра одного и того же класса могут отличаться один от другого значениями атрибутов.

Для описания действий над объектами, а также для указания подчиненности объекта обычно применяется так называемая «точечная нотация». Например, чтобы указать, что к кнопке Button_l следует применить метод onPress(), используется конструкция

Button_1. onPress().

Если же требуется указать на принадлежность кнопки Button_1 клипу Сliр_2, то запись может выглядеть так:

Clip_2. Button_1.

Объектная модель, применяемая в ActionScript, во многом аналогична объектным моделям других сценарных языков (например, JavaScript). Вместе с тем, существуют и определенные различия. Основное из них состоит в том, что в ActionScript иерархия объектов строится относительно Flash-плеера, а не относительно HTML-документа, отображаемого в окне Web-броузера.

Например, если HTML-документ содержит форму Form_l, в которой имеется кнопка Input_1, то в JavaScript «подчиненность» кнопки описывается следующим образом:

Documen t. Widow. Form_1. Input_1.

При этом, если обращение к кнопке выполняется из текущего документа, отображаемого в том же окне броузера, то первые два уровня иерархии явно не указываются, а подразумеваются. Соответственно, для обращения к кнопке может быть использована конструкция

Form_1. Input_1.

Аналогичные правила действуют и в ActionScript. Например, чтобы обратиться к клипу, непосредственно вставленному в кадр- основного фильма, можно записать: _root. Clip_l.

Ключевое слово _ root используется в качестве имени основного фильма и в данном случае может быть опущено. Если же клип является частью другого, «родительского», клипа, то для указания его подчиненности может использоваться ключевое слово _parent, например:

_parent. Clip_1.

Подробнее вопросы адресации объектов в ActionScript рассмотрены в следующем подразделе.

Теперь вернемся собственно к объектной модели ActionScript.

Как было сказано выше, корневым объектом, неявно присутствующим в любом сценарии, является Flash-плеер. На следующем уровне располагаются четыре класса объектов:

  • Movie (Объекты фильма);
  • Core (Объекты ядра);
  • Client/Server (Объекты клиент-серверной среды исполнения);
  • Authoring (Объекты среды разработки).

Объекты класса Movie позволяют представить в сценарии взаимоотношения между элементами фильма (то есть структуру фильма), а также управлять параметрами и поведением элементов фильма. К этому классу относятся, в частности, следующие объекты:

  • Button (Кнопка) — объект, представляющий в сценарии кнопку; для такого объекта может динамически изменяться, например, порядок установки фокуса ввода;
  • MovieClip (Клип) – объект, представляющий в сценарии клип; для него может динамически изменяться, например, число вложенных клипов;
  • Mouse (Мышь) — объект, представляющий в сценарии указатель мыши; он позволяет управлять видимостью и стилем указателя;
  • Key (Клавиатура) — объект, представляющий в сценарии клавиши, используемые для управления фильмом;
  • Color (Цвет) — объект, представляющий в сценарии палитру клипа и, соответственно, позволяющий изменять эту палитру;
  • Sound (Звук) – объект, представляющий -в сценарии звуковой символ, связанный с кнопкой или клипом;
  • Stage (Стол) — объект, предназначенный для управления некоторыми параметрами стола (в частности, масштабом изображения);
  • TextField (Текстовое поле) – объект, представляющий в сценарии динамическое текстовое поле или поле редактирования;
  • TextFormat (Формат текста) – объект, позволяющий управлять из сценария параметрами шрифта текстового поля.

Между объектами классов Button и MovieClip в ActionScript весьма сложно определить отношения подчиненности: они могут изменяться от одного фильма к другому и даже от одной сцены к другой. Например, i одной сцене кнопка может входить в состав клипа, а в другой — клиг может использоваться для «оживления» изображения кнопки, остальные же объекты класса Movie (за исключением, пожалуй, TextField ) можно считать подчиненными по отношению к объектам Button и MovieClip, поскольку могут входить в их состав, но не наоборот.

Замечание

Обратите внимание, что в ActionScript ни для кадра, ни для сцены фильма не предусмотрен соответствующий класс объектов. Дело в том, что ActionScript не позволяет изменять никакие свойства этих элементов фильма. С помощью сценария вы можете только обратиться к кадру (сцене) по его имени или номеру, а также проверить, загружен он либо нет. Как правило, кадр или сцена используются в качестве параметров действий (Actions) и методов. Например, чтобы перейти к 20-у кадру, можно записать действие gotoAndPlay(20).

Объекты класса Core предназначены для работы с объектами фильма и носят вспомогательную роль. Их следует использовать в том случае, если стандартных методов оказывается недостаточно для управления (изменения свойств) объектами фильма. В класс Core входят, в частности, следующие объекты:

  • Math (Математика) — объект, используемый в сценарии для работы с числовыми величинами; в отличие от всех других классов языка ActionScript, объект Math является и единственным экземпляром этого класса; то есть методы данного класса могут применяться непосредственно к объекту Math; например, чтобы получить значение косинуса с помощью метода cos, можно записать: Math.cos(3)\
  • Number (Число) – объект, предусмотренный для выполнения некоторых специальных операций с числовыми величинами; например, с его помощью можно определить наибольшее число в некотором диапазоне;
  • String (Строка) — объект, используемый в сценарии для работы со строками;
  • Date (Дата) – объект, используемый в сценарии для работы с календарными датами и временем.

Объекты класса Client/Server предназначены для работы с документами (Web-страницами), написанными на языке XML. Некоторые из этих объектов обеспечивают загрузку, обработку и пересылку XML-документов, другие – обслуживают соединения через сокеты. Тем самым ActionScript реализует поддержку серверной обработки XML-документов, содержащих Flash-фильмы.

Объект класса Authoring предназначен для управления параметрами среды разработки Flash-фильмов. Для него предусмотрены два основных метода: install и uninstall.

Контекст выполнения сценария

Контекст выполнения сценария определяет доступность и относительные адреса объектов и других программных величин (переменных), используемых в сценарии.

Необходимость учитывать контекст появляется в том случае, если в сценарии используется несколько объектов или переменных с одинаковыми именами. Например, если вы создадите переменную framePS для хранения скорости воспроизведения основного фильма, а затем — переменную с таким же именем (чего не бывает) для конкретного клипа, то рано или поздно сценарий сработает не так, как предполагалось.

В связи с эти необходимо учитывать следующую особенность ActionScript. Область видимости переменной в нем определяется временной диаграммой, активной в настоящий момент. Например, если в 10-м кадре основного фильма имеется клип, с которым связан сценарий, то все переменные, имеющиеся в этом сценарии, будут влиять на поведение временной диаграммы этого клипа, а не основного фильма. При условии, что в обращении к переменным отсутствует ссылка на временную диаграмму более высокого уровня (как может выглядеть такая ссылка, было сказано в предыдущем разделе).

С каждой временной диаграммой связан специальный параметр — уровень диаграммы (он обозначается с помощью ключевого слова _ level), который определяет ее положение относительно других временных диаграмм, загруженных в Flash-плеер. По умолчанию временная диаграмма основного фильма имеет нулевой уровень. Каждой вызываемой из нее временной диаграмме присваивается уровень, на единицу больший.

Таким образом, область действия переменных в Flash-фильме распространяется сверху вниз: имя переменной, созданной в сценарии временной диаграммы основного фильма, «видно» в сценарии следующего уровня, если в нем нет своей переменной с таким же именем.

Кроме того, внутри программного блока сценария, ограниченного фигурными скобками, могут объявляться локальные переменные, которые «видны» только в пределах этого блока.

Для управления областью видимости переменных в ActionScript используется понятие «путь назначения» — target path. Путь назначения позволяет указать принадлежность объекта или переменной конкретной временной диаграмме, загруженной в Flash-плеер.

Чтобы правильно записать путь назначения, необходимо учитывать объектную модель ActionScript и взаимное положение временных диаграмм. Например, если вы хотите указать, что требуется перейти к 10-му кадру основного фильма и воспроизвести его, вы можете записать такую конструкцию:

Jevel0.gotoAndPlay(l 0).

Возможны два варианта указания пути назначения: абсолютный и относительный.

Абсолютный путь вычисляется, как правило, на основе уровня временной диаграммы (как в приведенном выше примере). Указав в качестве отправной точки уровень диаграммы, вы можете быть уверены, что Flash-плеер правильно отыщет адресата, даже после того, как вы переместите фрагмент сценария, из которого выполнено обращение.

Относительный путь вычисляется с учетом положения той диаграммы, из которой выполняется обращение. Такой вариант более компактный, но менее надежный. Например, чтобы обратиться к кадру диаграммы, расположенной двумя уровнями выше текущей, можно записать такую конструкцию:

_parent._parent.muClip.

Однако после перемещения клипа, например, на более высокий уровень, относительная ссылка станет некорректной.

Итак, при создании сценариев на ActionScript возможно использование трех типов переменных, различающихся областью видимости:

  • глобальные (Global variables), которые доступны в сценарии любой временной диаграммы;
  • переменные временной диаграммы (Timeline variables), которые доступны из любой временной диаграммы при условии, что для обращения к ним используется путь назначения (target path);
  • локальные (Local variables), которые «видны» только в пределах того программного блока, в котором они объявлены.

Интерфейс панели Actions

Как было сказано в начале данной главы, панель Actions обеспечивает два режима работы.

В обычном режиме (Normal Mode) описание действий выполняется путем заполнения соответствующих полей параметров. В экспертном режиме (Expert Mode) вы можете записывать и корректировать действия непосредственно в окне сценария, работая в нем как в обычном текстовом редакторе.

По умолчанию при первом обращении к панели установлен режим Normal Mode.

Вызов панели Actions

Существует несколько способов вызова на экран панели Actions. Однако наиболее надежный и корректный способ состоит в том, чтобы вызывать панель «от имени» того элемента фильма, для которого вы собираетесь создать сценарий.

Чтобы открыть панель Actions для создания сценария кадра, необходимо щелкнуть правой кнопкой мыши на временной диаграмме в ячейке соответствующего ключевого кадра и в контекстном меню выбрать команду Actions. После того, как панель появится на экране, убедитесь, что создаваемый сценарий будет связан именно с тем кадром, с которым требуется. Для этого достаточно взглянуть на заголовок панели и расположенный под ним список .

Чтобы открыть панель  Actions для создания сценария, связанного с кнопкой или с клипом, необходимо:

  1. Выбрать соответствующий объект на столе.
  2. Открыть панель инспектора свойств.
  3. Щелкнуть кнопку Edit the action script (Редактировать сценарий действий), расположенную возле правой границы панели инспектора свойств .

Эта маленькая кнопочка обладает интересной особенностью: если сценарий для данного объекта отсутствует, она белого цвета, после создания сценария она «синеет».

При вызове панели Actions для кнопки или клипа в ее заголовке отображается соответствующая информация.

Замечание

Сценарий может быть сопоставлен только конкретному экземпляру кнопки или клипа, помещенному на стол, но не собственно символу, хранящемуся в библиотеке. Назначение сценария экземпляру кнопки или клипа не влияет на свойства других экземпляров.

После того, как панель будет открыта, вы можете выбрать режим работы.

Выбор режима выполняется с помощью соответствующих команд меню View Options (Настройка формата), которое открывается щелчком на одноименной кнопке панели.

Независимо от выбранного режима, панель содержит следующие основные элементы интерфейса:

  • раскрывающийся список сценариев фильма; он обеспечивает быстрый переход к другому сценарию без необходимости выбора на столе объекта, с которым связан этот сценарий;
  • кнопка Script Pin (Прикрепить сценарий) позволяет зафиксировать текущий сценарий; речь идет о том, что содержимое панели зависит от выбранного на столе объекта фильма; после фиксации сценария вы можете выбрать на столе другой объект, и содержимое панели при этом не изменится;
  • кнопка в виде книжки обеспечивает вызов встроенной справочной системы по языку ActionScript; необходимо отметить, что эта справка значительно подробнее, чем справка в формате HTML;
  • панель Action Toolbox (Комплект инструментов для действий); каждый элемент, представленный в этом подокне, соответствует определенной конструкции языка ActionScript; двойной щелчок на значке элемента обеспечивает его вставку в текст сценария;
  • окно сценария, в котором отображается текст сценария; при работе в режиме Expert Mode в этом окне можно работать как в обычном текстовом редакторе;
  • панель инструментов окна сценария; размещенные на ней кнопки повышают удобство работы с текстом сценария; состав кнопок в некоторой степени зависит от режима работы; их назначение будет рассмотрено в двух следующих подразделах;
  • строка состояния; она предназначена для вывода дополнительной информации относительно компонентов, включенных в сценарий; в частности, в строке состояния выводится краткое сообщение об ошибке.
  • Список Action Toolbox содержит перечень следующих компонентов языка ActionScript, которые могут быть использованы при создании сценария:
  • Actions (Действия) – процедуры языка ActionScript, имеющие «универсальный» характер, то есть не зависящие от особенностей класса объектов (в отличие от методов объектов, принадлежащих конкретному классу); в эту же категорию входят традиционные для большинства языков программирования высокого уровня операторы логического управления (проверки логических условий, организации цикла и т. п.);
  • Operators (Операторы) — операторы логических и арифметических операций (сложение, вычитание, сравнение и т. п.);
  • Functions (Функции) — предопределенные (библиотечные) функции (например, в их число входит функция проверки номера версии Flash-плеера);
  • Properties (Свойства) – свойства объектов, не зависящие от класса (например, уровень прозрачности изображения);
  • Objects (Объекты) — предопределенные объекты, которые могут быть использованы в сценарии (например, существует объект для работы с датой и временем); в этот же раздел включаются пользовательские классы объектов;
  • Deprecated (Осуждаемые) — конструкции, которые не рекомендуется использовать в сценариях (как устаревшие);
  • Flash UI Components (Компоненты пользовательского интерфейса).

Кроме перечисленных разделов, в списке Action Toolbox имеется также раздел Index, который содержит алфавитный перечень всех компонентов языка.

Режим Normal Mode

Область ввода параметров предназначена для указания параметров, необходимых для корректного выполнения конструкции, помещенной в текст сценария; формат области зависит от синтаксиса конструкции, выбранной (выделенной) в тексте сценария. Некоторые конструкции вообще не имеют параметров. В этом случае область ввода параметров пуста.

На панели инструментов окна сценария имеются следующие кнопки :

  • кнопка Add new item (Добавить новый элемент), помеченная символом «+», обеспечиваег вызов системы каскадных меню, отражающих иерархию компонентов языка ActionScript; выбор пункта меню самого нижнего уровня обеспечивает вставку в сценарий соответствующего компонента ;
  • кнопка, помеченная символом «-», обеспечивает удаление из текста сценария выбранного в окне компонента;
  • кнопка Find (Поиск) вызывает на экран диалоговое окно, в котором вы можете ввести искомую последовательность символов;
  • кнопка Replace (Замена) позволяет открыть диалоговое окно для установки параметров замены строки (последовательности символов);
  • кнопка Insert a target path (Добавить путь назначения) обеспечивает вывод на экран диалогового окна, с помощью которого вы можете описать путь назначения для адресации необходимого элемента фильма; формат окна Insert a target path будет рассмотрен ниже; данная кнопка становится доступна в том случае, если в окне сценария выбран компонент, в котором предполагается использование пути назначения и, кроме того,, если фокус ввода установлен в соответствующем поле окна установки параметров;
  • кнопка Debug Options (Параметры отладки) открывает меню, содержащее команды, с помощью которых выполняется расстановка и удаление контрольных точек (или точек прерывания Breakpoints); использование контрольных точек позволяет проследить выполнение сценария по шагам; величина шага определяется расстоянием между точками (числом строк сценария между точками);
  • кнопки, обозначенные стрелками, позволяют перемещать компоненты сценария относительно друг друга (если компонент состоит, например, из трех строк, то одним щелчком перемещаются все три строки).

Одним из важнейших достоинств режима Normal Mode является то, что он позволяет добавлять в сценарий предопределенные действия из раздела Actions, не прибегая к ручному программированию. Всего таких действий более десятка:

  • Go To — переход к заданному кадру или сцене;
  • Play и Stop — соответственно запуск и остановка воспроизведения фильма;
  • Toggle High Quality — управление качеством воспроизведения фильма;
  • Stop All Sounds — выключение звукового сопровождения; Q Get URL — переход по заданному URL;
  • FSCommand — управление Flash-плеером в процессе воспроизведения фильма;
  • Load Movie и Unload Movie — соответственно загрузка и выгрузка фильма броузером читателя;
  • Tell Target — управление навигацией между Flash-фильмами и клипами.

Некоторые из перечисленных действий будут рассмотрены более подробно применительно к конкретным типам объектов (клипам, кнопкам и кадрам) в последующих разделах.

Итак, чтобы в режиме Normal Mode создать сценарий или добавить в него некоторую компоненту, необходимо выполнить следующие действия:

  1. Выбрать на столе экземпляр кнопки или клипа (либо кадр на временной диаграмме), с которым должен быть связан сценарий.
  2. Открыть в списке Action Toolbox требуемый раздел, щелкнув на нем левой кнопкой мыши.
  3. Скопировать выбранный элемент в окно сценария, дважды щелкнув на имени или на значке элемента, или просто перетащив его мышью; при этом в окне отображается соответствующий фрагмент сценария на языке ActionScript.
  4. Ввести в соответствующих полях требуемые значения параметров.

Когда вы назначаете действие кнопке или клипу, Flash автоматически генерирует специальную управляющую процедуру (handler), которая во многих объектно-ориентированных языках называется «обработчик события» (или «селектор»). Обработчик проверяет, произошло ли событие определенного типа, и если да, то инициирует соответствующую последовательность действий. Дополнительная роль обработчика в ActionScript — это объединение (группирование) действий, связанных с данным событием.

Для кнопок обработчик имеет имя on, а для клипов — onСlipEvent. Имя обработчика предшествует списку событий, на которые обработчик должен реагировать. Например, конструкция on(release, KeyPress:«A») означает, что обработчик должен реагировать на события двух типов: release (кнопка мыши отжата) и KeyPress:«A» (на клавиатуре нажата клавиша «А»).

Вообще для кнопок в языке ActionScript предусмотрены следующие типы событий :

  • Press — пользователь нажимает кнопку мыши, когда указатель находится над изображением кнопки (фильма).
  • Release — пользователь нажимает и затем отпускает кнопку мыши (указатель находится над изображением кнопки);
  • Release Outside — пользователь отпускает кнопку мыши, когда указатель не находится над изображением кнопки;
  • Key Press — пользователь нажимает определенную клавишу на клавиатуре; для данного события необходимо дополнительно указать клавишу;
  • Roll Over — пользователь перемещает указатель над изображением кнопки;
  • Roll Out — пользователь перемещает указатель за пределы изображения кнопки;
  • Drag Over — пользователь нажимает кнопку мыши, когда указатель находится над кнопкой, выводит его за пределы кнопки, и затем опять устанавливает над кнопкой;
  • Drag Out — пользователь нажимает кнопку мыши, когда указатель находится над кнопкой, и затем выводит его за пределы кнопки.

Чтобы изменить перечень событий, на которые должен реагировать элемент фильма, необходимо щелкнуть мышью в строке сценария, в которой записано имя обработчика; при этом изменится формат окна параметров, и в нем появится группа флажков, с помощью которых можно выбрать требуемые события .

Сделанный выбор сразу же отображается в окне сценария.

Если добавление в сценарий некоторой конструкции приводит к ошибке, или для нее требуется указать обязательный параметр, то конструкция выделяется в окне сценария красным цветом; эта же конструкция дублируется и в строке состояния.

Это окно содержит следующие основные элементы интерфейса:

  • дерево фильма, отражающее иерархию объектов фильма, к которым возможно обращение из сценария; поскольку при обращении к объекту используется имя соответствующего экземпляра (кнопки, клипа, текстового поля), то в дерево включаются только поименованные экземпляры; корневой элемент дерева зависит от способа адресации: для абсолютного адреса — это ключевое слово _root (то есть основной фильм), для относительной — слово this (то есть текущая временная диаграмма);

многострочное текстовое поле Target (Назначение), предназначенное для ввода и корректировки пути назначения; если выбрать в дереве фильма некоторый элемент, то в поле Target появится соответствующий маршрут, который может быть изменен или дополнен вручную;

  • пара переключателей Mode (Режим), которые позволяют выбирать способ адресации (относительный — Relative или абсолютный — Absolute); по умолчанию используется относительная адресация;
  • пара переключателей Notation (Нотация), которые позволяют выбирать формат записи пути назначения:

    • вариант Dotes (Точки) означает применение точечной нотации (см. подраздел «Объектная модель ActionScript»);
    • вариант Slashes (Слэши) соответствует записи с использованием слэшей (это «устаревший» стиль, используемый для совместимости с предыдущими версиями ActionScript); при использовании слэшей формат записи аналогичен тому, который применяется для записи URL в HTML-документах; например, чтобы подняться на один уровень вверх, применяется конструкция ../.

Режим Expert Mode

Экспертный режим позволяет совмещать два способа формирования сценария: непосредственный ввод конструкций языка ActionScript с клавиатуры и вставку их в окно сценария из списка Actions Toolbox.

Окно параметров при работе в экспертном режиме не отображается. В этом режиме не могут также использоваться кнопки удаления и перемещения строк сценария :

Экспертный режим предназначен в первую очередь для тех, кто знаком с программированием на ActionScript. Поэтому, если вы хотите воспользоваться преимуществами данного режима, необходимо освоить основные приемы программирования на ActionScript.

Вместе с тем, уровень поддержки пользователя, реализованный в Flash MX, позволяет самостоятельно создавать сценарии различного уровня сложности. Для этого в составе редактора сценариев имеются следующие средства:

  • динамическая подсказка по конструкциям языка, реализованная в виде всплывающего списка параметров ;
  • встроенная утилита проверки синтаксиса Check Syntax.

Активизация обоих инструментов выполняется с помощью соответствующих кнопок, расположенных на панели инструментов окна сценария .

Замечание

Обратите внимание, что в режиме Expert Mode кнопка Insert а target path доступна постоянно.

Щелчок на кнопке Check Syntax непосредственно активизирует процесс поиска синтаксических ошибок. В случае их обнаружения на экран выводится специальное диалоговое окно. С его помощью вы не только получаете исчерпывающую информацию о характере, причинах и месте положения обнаруженной ошибки, но и можете настраивать параметры работы утилиты Check Syntax. Такая установка выполняется с помощью команд раскрывающихся меню окна .

Для отыскания ошибок в более сложных сценариях может применяться специальный отладчик — Debugger. Этот инструмент достаточно тесно интегрирован с редактором сценариев: расставив с помощью редактора контрольные точки, вы затем можете с помощью отладчика проследить процесс выполнения сценария по шагам. При этом в окне отладчика отображаются значения используемых в сценарии переменных, стек вызовов функции и другая информация, весьма полезная для программиста .

Чтобы перейти в режим отладки фильма, достаточно в меню Control основного окна выбрать команду Debug Movie (Отладка фильма). Предварительно, как было отмечено выше, полезно расставить в сценарии контрольные точки.

Поскольку работа в экспертном режиме предполагает наличие определенных навыков в программировании на ActionScript, то все последующие примеры создания сценариев рассматриваются применительно к режиму Normal Mode.

Создание сценария для кнопки

Кнопка является наиболее удобным и простым средством взаимодействия пользователя с Flash-фильмом. Кнопке может быть назначено любое из действий, входящих в раздел Actions. Кроме того, назначив кнопке несколько управляющих событий и сопоставив каждому из них определенное действие (или сценарий), вы можете превратить одну кнопку в целый пульт управления фильмом. Хотя в общем случае, разумеется, каждому действию можно сопоставить отдельную кнопку.

Управление воспроизведением фильма

Простейшими командами управления фильмом являются запуск и прерывание его воспроизведения. Эти команды реализуются с помощью предопределенных действий Play и Stop. Процедуру назначения этих действий двум кнопкам рассмотрим на примере фильма, в котором шарик прокатывается столу, падает и разбивается. Вернемся к последней версии фильма, в которой используется фон в виде стола и стоящих на нем предметов. В качестве кнопок используем экземпляры символов из общей библиотеки Buttons.

Итак, для включения в фильм интерактивных кнопок необходимо выполнить следующие действия:

  1. Добавьте в фильм новый слой, который будет использоваться в качестве дополнительного фона; именно в фоновый слой следует добавить кнопки, чтобы они присутствовали на сцене на всем протяжении фильма.
  2. Щелкните мышью в ячейке первого ключевого кадра в «кнопочном» слое.
  3. Перетащите поочередно из окна библиотеки на стол две кнопки, которые вы решили использовать в фильме; в результате окно Flash будет выглядеть примерно так, как показано на рис. .
  4. Выберите первую из кнопок, с помощью которой фильм должен приостанавливаться.
  5. С помощью инспектора свойств кнопки откройте панель Actions и щелкните в списке Actions Toolbox на значке раздела Actions.
  6. Откройте подраздел Movie Control, отыщите в нем действие Stop и дважды щелкните на нем мышью; в результате в окне сценария появится текст сценария, содержащий обработчик onfrelease); он обеспечивает инициализацию действия stop() при наступлении события release (то есть при щелчке на кнопке); пустые скобки после имени процедуры означают, что данная процедура используется без параметров; соответствующее сообщение выводится и в окне параметров.
  7. Не закрывая панель  Actions, выберите на столе вторую кнопку и назначьте ей действие play, повторив описанную выше процедуру.

В отличие от обычной анимации, протестировать многие сценарии в режиме редактирования невозможно. Чтобы проверить, как работают созданные кнопки, следует выбрать в меню Control команду Test Movie или Test Scene. В результате фильм будет Экспортирован в формат SWF и затем воспроизведен с помощью Flash-плеера. Чтобы вернуться в режим редактирования, достаточно просто закрыть окно плеера.

Переход по заданному URL

Действие getURL входит в подраздел Browser/Network. Это действие позволяет загрузить в броузер документ, расположенный по указанному URL, либо переслать значения некоторых переменных (например, данных из формы) в приложение, размещенное по определенному URL. При этом следует учитывать, что действие getURL обеспечивает пересылку данных только для текущего фильма.

Замечание

Для тестирования действия getURL требуется, чтобы адрес запрошенного файла был указан в виде абсолютного URL.

Чтобы создать кнопку, обеспечивающую переход по заданному URL, требуется выполнить следующие действия:

  1. Добавьте в фильм новый «фоновый» слой.
  2. Поместите на него кнопку, которой будет назначено действие getURL.
  3. Откройте панель Actions.
  4. В списке Actions Toolbox откройте раздел Actions, затем — подраздел Browser/Network и дважды щелкните в строке getURL; в результате в окне сценария появится соответствующая конструкция на языке ActionScript, а в панели параметров — параметры действия getURL .
  5. Введите требуемые значения параметров.
  6. По умолчанию действие  getURL выполняется по щелчку на кнопке событие (release); если требуется добавить или изменить событие, щелкните в окне сценария в строке селектора и с помощью панели параметров измените перечень событий.

Рассмотрим подробнее параметры действия getURL.

Параметр URL определяет адрес запрашиваемого документа; значение параметра может быть задано в виде абсолютного или относительного URL, либо в виде вычисляемого выражения.

При указании относительного URL для поиска требуемого документа Flash перемещается по иерархии файлы/папки/каталоги и обратно, начиная с того файла, в котором содержится процедура getURL.

Чтобы получить URL как результат вычисления некоторого выражения, установите флажок Expression, расположенный справа от поля URL, и введите требуемое выражение.

Параметр Window задает окно или фрейм, в который должен быть загружен запрошенный документ. Значение параметра выбирается с помощью раскрывающегося списка, который содержит следующие варианты (они аналогичны значениям атрибута TARGET тэга <А> в языке HTML):

_self — документ будет загружен в текущее окно, или фрейм;

_ blank — документ будет загружен в новое окно;

_parent — документ будет загружен в родительский или текущий фрейм;

_top — документ будет загружен во фрейм более высокого уровня иерархии или в текущее окно.

При необходимости значение данного параметра может быть получено как результат вычисления выражения. В этом случае следует установить флажок Expression, расположенный справа от списка Window.

Параметр Variables позволяет указать способ пересылки данных по заданному URL. Значение параметра выбирается из раскрывающегося списка, который содержит три варианта:

  • Don’t send (He отправлять) — пересылка данных не требуется;
  • Send using GET (Отправить, используя GET) — для пересылки данных будет использован метод GET;
  • Send using POST (Отправить, используя POST) — для пересылки данных будет использован метод POST.

Замечание

Напомним, что различие в использовании методов GET и POST для пересылки данных на сервер состоит в том, что при первом из них пересылаемые данные присоединяются к строке адреса. Поскольку длина адреса ограничена 256 символами, то ограничен также и объем пересылаемых данных.