Учебник по Macromedia flash MXВозможно именно благодаря языку ActionScript технология Flash получила такое распространение. Теперь же пришло время попробовать самому написать несколько сценариев.

Разработка сценариев ActionScript

В этой главе приведены примеры создания 3ех наиболее исползуемых сценариев flash. Создание сценариев для кнопки, кадра и клипа.

  1. Создание сценария для кнопки
  2. Создание сценария для кадра
  3. Создание сценария для клипа

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

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

Flash MX

Рис. 9.21. Пример применения кнопок в интерактивном фильме

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

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

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

  1. Добавьте в фильм новый слой, который будет использоваться в качестве дополнительного фона; именно в фоновый слой следует добавить кнопки, чтобы они присутствовали на сцене на всем протяжении фильма.
  2. Щелкните мышью в ячейке первого ключевого кадра в «кнопочном» слое.
  3. Перетащите поочередно из окна библиотеки на стол две кнопки, которые вы решили использовать в фильме; в результате окно Flash будет выглядеть примерно так, как показано на рис. 9.22.

macromedia flash

Рис. 9.22. Окно фильма после добавления кнопок

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

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

flash mx

Рис. 9.23. Панель Actions после назначения кнопке действия stop

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

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

Замечание

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

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

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

flash игра

Рис. 9.24. Панель Actions после назначения кнопке действия getURL

  1. Введите требуемые значения параметров.
  2. По умолчанию действие getURL выполняется по щелчку на кнопке событие (release); если требуется добавить или изменить событие, щелкните в окне сценария в строке селектора и с помощью панели параметров измените перечень событий.

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

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

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

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

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

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

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

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

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

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

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

Замечание

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

Загрузка дополнительных фильмов

С помощью действий loadMovie и unloadMovie можно обеспечить динамическую загрузку дополнительных фильмов или их выгрузку без повторной инициализации Flash-плеера.

Такая технология обеспечивает эффективное решение следующих задач:

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

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

Панель Actions после назначения кнопке действия loadMovie

Рис. 9.25. Панель Actions после назначения кнопке действия loadMovie

  1. Введите требуемые значения параметров.

По умолчанию действие loadMovie выполняется по щелчку на кнопке (событие release); если требуется добавить или изменить событие, щелкните в окне сценария в строке обработчика и с помощью панели параметров измените перечень событий.

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

Параметр URL определяет адрес загружаемого фильма (SWF-файла); значение параметра может быть задано в виде абсолютного или относительного URL, либо в виде вычисляемого выражения.

Параметр Location (Расположение) определяет «место» загружаемого фильма или клипа в иерархии. Для фильма его положение определяется относительным уровнем (Level), для клипа — положением клипа-предшественника (Target), который он должен заместить.

Относительный уровень фильма — это целое положительное число от 0 и до... Верхний уровень ограничен только вашей фантазией и объемом оперативной памяти компьютера.

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

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

Загрузка нового фильма на уровень 0 приводит не только к замене прежнего фильма этого уровня, но и к выгрузке фильмов всех других уровней.

Параметр Variables имеет тот же смысл, что и для действия getURL.

Замечание

Для просмотра последовательности связанных фильмов в Flash-плеере или для их тестирования во Flash, все SWF-файлы должны быть сохранены в одной папке; в поле URL имя файла должно быть указано без папки или спецификаций дисковода, но обязательно с расширением swf.

Применение действия loadMovie проиллюстрируем небольшим примером. Пусть первым загружаемым фильмом (расположенным на нулевом уровне) будет фильм, содержащий только кнопку, которой назначено действие loadMovie (рис. 9.26). Предположим, что с его помощью требуется дополнительно загрузить фильм «про шарик» с двумя кнопками (см. рис. 9.22). Для решения указанной задачи необходимо:

URL = Interact.swf

Location: Level=l Variable = Don't send.

После загрузки фильма нулевого уровня в режиме Test Movie и щелчка на кнопке «Продолжение просмотра» кадр будет выглядеть, как показано на рис. 9.27. При этом все кнопки сохраняют свою интерактивность.

фильм flash

Рис. 9.26. Фильм нулевого уровня

Вид окна Flash-плеера

Рис. 9.27. Вид окна Flash-плеера после загрузки дополнительного фильма

Чтобы выгрузить фильм из Flash-плеера, необходимо назначить какой-либо кнопке или кадру фильма действие unloadMovie. Для него должен быть установлен единственный параметр — Location, определяющий уровень фильма (Level), который следует выгрузить.

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

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

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

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

  1. Щелкнуть правой кнопкой мыши в ячейке кадра и в контекстном меню выбрать команду Actions (если выбранный кадр не является ключевым, то действие будет назначено предшествующему ключевому кадру).
  2. В списке Actions Toolbox открыть раздел Actions, а в нем -требуемый подраздел.
  3. Дважды щелкнуть мышкой на действии, которое вы хотите назначить кадру; при этом в окно сценария будет помещена соответствующая конструкция на языке ActionScript; обратите внимание, что сценарий кадра не содержит селектора; объясняется это тем, что для кадров предусмотрен только один тип событий— переход считывающей головки.

Имейте в виду, что действия, назначенные кадру, в режиме редактирования не работают. Чтобы протестировать фильм, необходимо в меню Control выбрать команду Test Movie (или Test Scene).

В качестве примера рассмотрим назначение кадру действия goto, входящего в подраздел Movie Control. Результатом его выполнения является переход к заданному кадру или сцене. Переход к одному из предыдущих кадров фильма обеспечивает циклическое повторное воспроизведение соответствующего фрагмента фильма.

Замечание

На самом деле действия goto как такового не существует, в ActionScript используются два действия, реализующие

два варианта перехода на требуемый кадр или сцену: gotoAndPlay (Перейти и воспроизвести) и gotoAndStop (Перейти и остановить).

Для обоих вариантов перехода предусмотрены следующие параметры (рис. 9.28):

Вид панели Actions

Рис. 9.28. Вид панели Actions при назначении кадру действия goto

Пара переключателей Go to and Play (Перейти и воспроизвести) и Go to and Stop (Перейти и остановить) определяет операцию, выполняемую после перехода на заданную сцену или кадр: после перехода воспроизведение фильма либо продолжается (возобновляется), либо приостанавливается.

Замечание

При указании номера кадра следует иметь в виду, что он должен лежать в диапазоне от 1 до 16000.

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

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

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

  1. Щелкнуть правой кнопкой на клипе, которому вы хотите назначить действие (имейте в виду, что двойной щелчок левой кнопкой на изображении клипа обеспечивает переход в режим редактирования символа).
  2. В контекстном меню выбрать команду Actions.
  3. В разделе Actions выбрать требуемое действие и перенести его в окно сценария.
  4. В поле параметров ввести требуемые значения (если для данного действия они предусмотрены).
  5. В окне сценария щелкнуть на строке с обработчиком onClipEvent; при этом в поле параметров появится перечень допустимых типов событий, которые могут инициализировать действие (рис. 9.29).
  6. Выберите тип события, при наступлении которого введенные данные должны быть переданы на сервер; обратите внимание, что, в отличие от кнопок, для клипа может быть выбран только один из типов событий; перечень типов событий также отличается от предусмотренного для кнопок:
    • load — действие инициализируется, как только экземпляр клипа появляется на столе;
    • unload — действие инициализируется при переходе к первому кадру после выгрузки клипа;
    • enterFrame - действие инициализируется при переходе к каждому очередному кадру;
    • mouseMove — действие инициализируется при каждом перемещении мыши;
    • mouseDown — действие инициализируется при нажатии левой кнопки мыши;
    • mouseUp - действие инициализируется, когда левая кнопка мыши освобождается;
    • keyDown — действие инициализируется при нажатии заданной клавиши на клавиатуре;
    • keyUp — действие инициализируется, когда нажатая клавиша освобождается;
    • data — действие инициализируется, когда закончена загрузка данных с сервера.

события flash клипа

Рис. 9.29. Перечень допустимых событий для клипа

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

Предположим, что создаваемая маска должна не только перемещаться вдоль маскированного слоя, но вращаться вокруг своей оси.

Замечание

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

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

Итак, для решения поставленной задачи выполните следующие действия:

flash клип

Рис. 9.30. Пример использования клипа в качестве

  1. Создайте клип, который будет использован в качестве маски (в соответствии с условиями рассматриваемого примера, «пропеллер» должен просто вращаться вокруг центральной точки).
  2. Поместите экземпляр клипа на стол, в первый слой фильма.
  3. С помощью инспектора свойств дайте экземпляру клипа имя (например, mask).
  4. Создайте для маски анимацию движения (чтобы «пропеллер» перемещался вдоль стола).
  5. Добавьте в фильм слой, который будет использоваться в качестве фона (то есть будущий маскированный слой).
  6. Поместите на фоновый слой изображение и преобразуйте его в символ-клип, выбрав в меню Insert команду Convert to Symbol.
  7. С помощью инспектора свойств дайте экземпляру клипа имя (например, Fon).
  8. Преобразуйте слой с клипом mask в слой-маску, выбрав в его контекстном меню команду Mask.
  9. Щелкните правой кнопкой мыши на первом кадре слоя-маски и в контекстном меню выберите команду Action, чтобы открыть панель Action.
  10. В списке Action Toolbox откройте раздел Objects, а в нем -последовательно подразделы Movie -> MovieClip -> Methods.
  11. В подразделе Methods отыщите метод setMask и дважды щелкните на нем мышью, чтобы копировать его в окно сценария; после вставки метода панель Action будет выглядеть приблизительно так, как показано на рис. 9.31.

Формат панели Action Macromedia Flash MX

Рис. 9.31. Формат панели Action после вставки в сценарий метода setMask

  1. В поле установки параметров введите имена экземпляров клипов: в поле Object - имя фонового клипа (Fon), в поле Parameters — имя клипа-маски (mask).

В результате выполнения последнего шага панель Action должна выглядеть приблизительно так, как показано на рис. 9.32.

вресия flash

Рис. 9.32. Формат панели Action после настройки параметров метода setMask

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

Дизайн и разработка сайта: CoreNeus
При копировании материала ссылка на источник обязательна.
Наши друзья:
уборка квартиры |