Учебник по Macromedia flash MXВозможно именно благодаря языку ActionScript технология Flash получила такое распространение. Он очень гибок и универсален, прост в освоении, похож на JavaScript. Эти свойства делают его очень удобным для использования во Flash

Язык программирования ActionScript

Язык ActionScript, который используется в программе Macromedia Flash MX, позволяет Вам создавать клипы, которые действуют точно так, как Вам нужно. Вам не нужно знать все элементы ActionScript для того, что бы начать писать свои скрипты. Если цель Вам ясна, то Вы можете начать строить скрипты, используя простейшие операторы. Затем, по ходу работы, Вы можете внедрять новые изученные элементы языка, что бы выполнять более сложные задачи.

  1. Панель Action
  2. Общие сведения об ActionScript
  3. Интерфейс панели Action

Панель Actions

Инструмент для работы с ActionScript реализован в виде диалоговой панели Actions (Действия), внешний интерфейс которой ничем не отличается от других панелей Flash MX, рассмотренных в предыдущих главах. Однако при более близком знакомстве с ней оказывается, что это самый настоящий редактор для создания сценариев на ActionScript. Причем работать он может в двух режимах: обычном (то есть предназначенном для «обычных» пользователей) — Normal, и в экспертном (для «продвинутых» пользователей) — Expert.

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

флеш анимация

Рис. 9.1. Экспертный (вверху) и обычный (внизу) форматы панели Actions

Общие сведения об 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-плеер. На следующем уровне располагаются четыре класса объектов (рис. 9.2):

ActionScript

Рис. 9.2. Объектная модель ActionScript

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

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

Замечание

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

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

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

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

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

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

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

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

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

Язык ActionScript

Рис. 9.3. Иерархия временных диаграмм, загруженных в Flash-плеер

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

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

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

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

Jevel0.gotoAndPlay(l 0).

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

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

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

_parent._parent.muClip.

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

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

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

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

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

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

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

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

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

flash мультфильм - создание

Рис. 9.4. Заголовок панели Actions при создании сценария для кадра

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

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

flash

Рис. 9.5. Кнопка вызова панели Actions для кнопки или клипа

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

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

flash игры

Рис. 9.6. Заголовок панели Actions при создании сценария для кнопки

Замечание

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

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

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

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

flash сайт

Рис. 9.7. Меню для выбора режима работы панели Actions

flash movie

Рис. 9.8. Основные элементы интерфейса панели Actions

Macromedia Flash MX

Рис. 9.9. Категории компонентов языка ActionScript

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

Режим Normal Mode

Формат панели Action при работе в этом режиме показан на рис. 9.10.

скачать flash

Рис. 9.10. Формат панели Action в режиме Normal Mode

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

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

флеш сайт

Рис. 9.11. Панель инструментов окна сценария в режиме Normal flash анимация

 

Рис. 9.12. Вставка компонента с помощью кнопки Add new item

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

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

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

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

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

flash mx

Рис. 9.13. Формат обработчика события

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

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

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

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

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

Формат окна Insert a target path, с помощью которого вы можете описать путь назначения (то есть адрес) некоторого элемента фильма, показан на рис. 9.15.

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

учебник по флеш

Рис. 9.14. Индикация ошибочной конструкции

флеш обучение

Рис. 9.15. Формат окна Insert a target path

Режим Expert Mode

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

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

flash учебник

Рис. 9.16. Формат панели Action в режиме Expert Mode

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

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

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

Замечание

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

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

flash обучение

Рис. 9.17. Динамическая подсказка по конструкциям языка

флеш сайт

Рис. 9.18. Панель инструментов окна сценария в режиме Expert Mode

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

macromedia

Рис. 9.19. Диалоговое окно утилиты Check Syntax

macromedia flsh mx

Рис. 9.20. Окно отладчика сценариев

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

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

Вернуться в раздел "Интерактивные фильмы"

Дизайн и разработка сайта: CoreNeus
При копировании материала ссылка на источник обязательна.
Наши друзья:
щебень обнинск доставка подробнее | доставка цветов по г майкоп | автозапчасти киев | ПРЕМЬЕР АЭРО - продажа и заказ частного самолета Bombardier Challenger 600 |