мелания трамп и ее стиль|алтел как узнать баланс

Macromedia Flash - Учебники - ActionScript - Урок 3. Элементарные операции

Урок 3.

Элементарные операции

  • Дополнение стандартных средств Flash сценариями ActionScript
  • Метки в кадрах
  • Переход к заданным кадрам
  • Воспроизведение и остановка фильма
  • Перемещение между кадрами и сценами
  • Поиск кадра и сцены
  • Переход к кадрам в других кинолентах
  • Управление другими кинолентами
  • Внешние сценарии

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

Стандартные средства Flash и сценарии ActionScript

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

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

Расстановка меток в кадрах

Представьте себе карту автомобильных дорог, в которой вместо названий используются исключительно цифровые обозначения. Скажем, вместо метки «Омаха, штат Небраска» на такой карте будет написано «23421». Немного неудобно, на так ли? По аналогичным соображениям кадры, адресуемые в сценариях ActionScript, следует снабжать понятными метками. Можно, конечно, направить фильм к кадру 7 (формально подобная конструкция вполне допустима), но значительно проще все же иметь дело с кадрами, которые снабжены «говорящими» метками типа Right (Правильно), Wrong (Неверно) или Is that your final answer? (Это ваш окончательный ответ?).

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

  1. Выделите требуемый кадр, щелкнув на его представлении в киноленте. Кадр будет выделен на экране цветом.
  2. Выполните команду Modify > Frame (Модифицировать > Кадр), выполните двойной щелчок на кадре или воспользуйтесь комбинацией клавиш Ctrl+F (Windows) либо Cmd+F (Macintosh), чтобы открыть панель Frame (Кадр).
  3. В поле Label (Метка) введите имя метки и щелкните на кнопке ОК. На рис. 3.1 показана панель Frame (Кадр) с введенной меткой кадра.

Рис 3.1. установка метки кадра

В уроке 2 вы узнали, как создавать комментарии к кадрам, но комментарии нельзя использовать в сценариях для перехода к определенному кадру. Обычно эта задача решается путем установки меток. Впрочем, в инструкциях перехода можно применять также номера кадров, но такой сценарий будет похож на описанную выше карту автомобильных дорог, где все названия заменены номерами. Этот механизм работает, но при чтении подобных сценариев довольно трудно вспомнить, куда ведет тот или иной путь. Следует также учитывать, что в ходе разработки фильма часто приходится вставлять в киноленту обычные и ключевые кадры, что приводит к сдвигу нумерации. Скажем, кадр 20 запросто может стать кадром 27. При работе с метками вы гарантированы от подобных неприятностей: метка будет сдвигаться вместе с кадром.

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

Пример фильма. Переход с воспроизведением и остановкой

На компакт-диске, прилагаемом к настоящей книге, вы можете найти файл SBLimit.fla, содержащий образец фильма, в котором используется несколько слоев:

  • Buttons N Labels (Кнопки и метки);
  • Train (Поезд);
  • Smoke (Дым);
  • Track (Путь);
  • Headline (Заголовок);
  • Backdrop (Фон).

Чрезвычайно важными операциями языка ActionScript являются gotoAndPl ay и gotoAndStop, осуществляющие переход с последующим воспроизведением кадра и остановкой соответственно. Поскольку основой фильма Flash является кинолента, возможность произвести переход к ее определенному участку позволяет автору фильма создавать сценарии в различных кадрах и обеспечивать запуск этих сценариев при возникновении определенной ситуации. Названные операции отнюдь не относятся к числу сложных.

  • Операция gotoAndStop ("ИмяКадра" или Номер). Фильм переходит к указанному кадру; воспроизведение приостанавливается до получения команды Play. Когда пользователь выбирает команду Go То (Переход) в списке основных операций, в текст сценария по умолчанию вставляется строка

    gotoAndPlay (1);

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

  • Операция gotoAndPlay ("ИмяКадра" или Номер). Фильм переходит к указанному кадру; его содержимое воспроизводится. Если в этом кадре отсутствуют сценарии, воспроизведение фильма продолжается в обычном порядке.

Чтобы проиллюстрировать принцип действия инструкции перехода, автор составил небольшой фильм, показывающий движение поезда из Санта-Бар-бары (Santa Barbara) в Сан-Диего (San Diego). Каждая станция, где поезд делает остановку, представлена в фильме отдельным кадром; кнопки обеспечивают перемещение поезда к конкретной станции. На рис. 3.2 можно видеть структуру слоев фильма, а на рис. 3.3 показана его рабочая зона.

Зритель смотрит на поезд спереди; в начале просмотра поезд выглядит как небольшое пятнышко. По мере приближения к Сан-Диего представление поезда (графический символ) постепенно увеличивается. Слой Smoke (Дым) обеспечивает вывод на экран движущихся клубов дыма. Кнопка R/R, находящаяся внизу в центре рабочей зоны, заключает в себе сценарий, содержащий инструкцию Play, и позволяет произвести повторный запуск киноленты после остановки воспроизведения в последнем кадре слоя Train (Поезд). Кнопки с названиями городов содержат сценарии, осуществляющие переход к соответствующей станции с последующей остановкой воспроизведения. На рис. 3.4 показан текст сценария для одной из этих кнопок; сценарии других кнопок отличаются от данного только названием города. Обратите внимание на то обстоятельство, что метка, переход к которой осуществляется в данном примере, соответствует метке, введенной (см. рис. 3.1) в панели Frame (Кадр).

Рис. 3.2. Метки в слое Track используются в инструкциях перехода

Рис. 3.3. Образец фильма с инструкциями остановки в кадрах, а также с инструкциями перехода и остановки в сценариях кнопок

Рис. 3.4. Раскрывающийся список Frame содержит имена всех ключевых кадров, снабженных метками. Обратите внимание, что флажок Go to and Play снят

Слои

Сначала необходимо создать фоновый слой — определить его цвет и добавить детали ландшафта. Затем потребуется разместить в рабочей зоне фильма графическую надпись Santa Barbara Limited. В обоих упомянутых слоях нам понадобится по 53 кадра. Поэтому нужно щелкнуть на кадре 53 и нажать клавишу F5. После этого можно заняться слоем Track (Путь). Здесь будут располагаться все ключевые кадры, снабженные соответствующими метками. При вставке инструкций перехода в сценарии обработки кнопок, как показано на рис. 3.4, в списке Frame (Кадр) должны находиться все необходимые метки. Определяйте ключевые кадры таким образом, чтобы их метки были целиком видны на киноленте (для этого можно использовать в качестве ключевого каждый десятый кадр). Ни у одного из кадров в слое Track (Путь) нет сценария ActionScript.

В слое Buttons N Labels (Кнопки и метки) создайте шесть кнопок с названиями городов и кнопку R/R, как описано ниже.

  1. Создайте рисунки кнопок для каждого из городов. Для этого можно нарисовать одну -кнопку и пять раз скопировать ее.
  2. Напишите на кнопках названия городов. Для каждой кнопки следует выполнить команду Modify > Group (Модифицировать > Группировать) или воспользоваться комбинацией клавиш Ctrl+G (Windows) либо Cmd+G (Macintosh).
  3. Выделите изображение каждой кнопки и преобразуйте его в кнопку с помощью команды Insert > Convert to Symbol (Вставка > Преобразовать в символ) или нажатием клавиши F8. В диалоговом окне Symbol Properties (Свойства символа) установите переключатель Button (Кнопка).
  4. Выделите одну из кнопок с названиями городов и щелкните на кнопке Show Actions (Показать операции) в правой нижней части окна рабочей зоны или нажмите комбинацию клавиш Ctrl+Alt+A (Windows) либо Cmd+Option+A (Macintosh), чтобы открыть панель Object Actions (Операции объекта).
  5. В самом верху списка папки Basic Actions (Основные операции) выберите двойным щелчком операцию Go To (Перейти).
  6. При этом по умолчанию в тексте сценария появится инструкция gotoAndPlay(l). Чтобы заменить ее на инструкцию gotoAndStop(1), снимите флажок Go to and Play (Перейти и воспроизвести), находящийся в нижней части панели операций.
  7. В раскрывающемся списке Туре (Тип) выберите пункт Frame Label (Метка кадра). Под списком типов находится еще один раскрывающийся список — Frame (Кадр), — здесь вы увидите метки всех кадров. Выберите метку, соответствующую названию города, указанному на выбранной кнопке. Повторите эти действия для всех шести кнопок с названиями городов.
  8. Создайте кнопку с надписью R/R. Выделите эту кнопку и откройте панель операций. Дважды щелкните на имени операции Play (Воспроизвести) в папке Basic Actions (Основные операции). Операция play() не имеет параметров, поэтому вам не нужно здесь больше ничего делать. Обратите также внимание на то обстоятельство, что в текст сценария при этом автоматически помещается код ActionScript, обеспечивающий инициализацию операции воспроизведения при щелчке на кнопке (инструкция on (release)).
  9. Наконец, нарисуйте железнодорожный путь, соответствующий размерам самого маленького и самого большого изображения поезда в вашем фильме. Вы можете познакомиться с образцом фильма на прилагаемом к книге компакт-диске, чтобы понять, как нужно создавать перспективу.

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

  1. Вставьте новый слой, щелкнув на кнопке Insert Layer (Вставить слой) в окне со списком слоев.
  2. Вставьте кадр в позицию 54 киноленты, щелкнув на указанной позиции и выполнив команду Insert > Frame (Вставка > Кадр) или воспользовавшись клавишей F5.
  3. Установите указатель воспроизведения на первом кадре. Чтобы получить изображение поезда, следует либо создать рисунок и преобразовать его в графический символ, либо взять за основу обычный символ с изображением поезда в одном из шрифтов. (Выделите текстовый символ или рисунок и выполните команду меню Insert > Convert to Symbol (Вставка > Преобразовать в символ) либо нажмите клавишу F8.)
  4. Переместите указатель воспроизведения к последнему кадру и вставьте ключевой кадр с помощью команды Insert > Keyframe (Вставка > Ключевой кадр) либо нажатием клавиши F6.
  5. Оставив указатель воспроизведения на последнем кадре, выделите нужный ключевой кадр. Откройте панель операций, щелкнув на кнопке Show Actions (Показать операции) в правом нижнем углу окна рабочей зоны. В папке Basic Actions (Основные операции) двойным щелчком на строке Stop (Остановить) вставьте в сценарий кадра операцию остановки.
  6. Выберите команду Window > Panels > Info (Окно > Панели > Информация), чтобы открыть панель Info (Информация). Выделите символ поезда и увеличьте значения, заданные в полях W (Ширина) и Н (Высота), в десять раз (для этого достаточно просто удалить десятичные точки). Размеры поезда должны увеличиться в десять раз.
  7. Переместите указатель воспроизведения к кадру 1 и дважды щелкните на этом кадре. При этом откроется комбинированная панель, куда помимо остальных входит и панель Frame (Кадр). Щелкните на ней или воспользуйтесь комбинацией клавиш Ctrl+F (Windows) либо Cmd+F (Macintosh), чтобы перейти к панели Frame (Кадр), и выберите пункт Motion (Движение) в раскрывающемся списке Tweening (Кадрирование). Если теперь вы запустите фильм, то увидите плавное анимированное изменение размеров первоначального изображения.
  8. Чтобы вставить в фильм железнодорожные пути, установите указатель воспроизведения на последнем кадре. Отметьте место, где должны проходить рельсы (по краям «скотосбрасывателя» паровоза), а затем переместите указатель к первому кадру. Проведите линии рельсов от изображения поезда в первом кадре до отметок, которые вы сделали в последнем. Наконец, нарисуйте шпалы, перпендикулярные железнодорожному полотну (см. рис. 3.3). Прекрасный рисунок железной дороги вы найдете в упомянутом выше файле с расширением FLA на компакт-диске, прилагаемом к настоящей книге.

Слой Smoke (Дым) содержит представление движущихся клубов дыма в клипе. Создайте этот слой следующим образом.

  1. Выполните команду Insert > New Symbol (Вставка > Новый символ) или воспользуйтесь комбинацией клавиш Ctrl+F8 (Windows) либо Cmd+F8 (Macintosh). В диалоговом окне Symbol Properties (Свойства символа) установите переключатель Movie Clip (Клип) и введите имя клипа.
  2. Создайте клип таким образом, чтобы размеры клубов дыма были пропорциональны габаритам поезда, определенным в кадре 1. Заставьте клуб дыма двигаться — используйте с этой целью три-четыре ключевых кадра с изменяющимся изображением дыма. При этом рекомендуется использовать лупу — инструмент увеличения, потому что размер клубов дыма в кадре 1 невелик.
  3. Вставьте слой Smoke (Дым) и перетащите в рабочую зону кадра 1 клип дыма из окна Library (Библиотека). После этого щелкните на кнопке Scene 1 (Сцена 1) в левом верхнем углу окна киноленты, чтобы выйти из режима редактирования символов.
  4. Сделайте последний кадр ключевым, выделив его и выполнив команду Insert > Keyframe (Вставка > Ключевой кадр) либо нажав клавишу F8. Переместите указатель воспроизведения к последнему кадру.
  5. Увеличьте размер клипа с изображением дыма пропорционально изменению габаритов поезда в последнем кадре и правильно расположите клип относительно дымовой трубы.
  6. Дважды щелкните на первом кадре для вызова комбинированной панели и перейдите на панель Frame (Кадр).
  7. В раскрывающемся списке Tweening (Кадрирование) выберите пункт Motion (Движение) и щелкните на кнопке ОК, чтобы трансформировать маленький клуб дыма в большой. В образце фильма, находящемся на компакт-диске, для создания более естественного изображения дыма кадрирование выполняется в несколько этапов, но в нашем случае вполне можно ограничиться одним.

Теперь ваш фильм должен воспроизводить поезд, который движется вперед и останавливается, приобретая размеры, заданные для последнего кадра киноленты (рис. 3.5). При щелчке на одной из кнопок система ActionScript изменяет размер символов поезда и клубов дыма в соответствии с «расстоянием» до «города» на киноленте. Описанный фильм очень прост, но он иллюстрирует отношения, возникающие между различными объектами в фильмах Flash, и показывает, каким образом сценарии ActionScript могут применяться для управления этими объектами.

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

СОВЕТ

ШРИФТЫ. Шрифт, который мы использовали при создании поезда и меток, назы-вается CentralStation. Он принадлежит к коллекции шрифтов Лесли Кабарга (Leslie Cabarga), которую можно найти по адресу www.flashfonts.com. Если вы работаете с нестандартными шрифтами, не забудьте преобразовать все текстовые объекты в графические символы, чтобы ваш файл SWF (Shockwave Flash) корректно отображал шрифты и другие изображения на любом компьютере. Если же вы хотите, чтобы используемые вами шрифты были доступны на любом компьютере в файле FLA, разбейте их на составные элементы, а затем либо используйте их как рисунки, л ибо создайте на их основе символы (знаки шрифтов при этом будут отображаться как графика, а не как текстовые элементы).

Воспроизведение

Иногда в сценариях ActionScript одновременно используются операции Stop и Play, которые вступают в противоречие. Что случится, если в каком-либо сценарии фильма применяется инструкция gotoAndStop, предписывающая необходимость перейти к кадру, содержащему сценарий с инструкцией Play()? Будет ли воспроизведение фильма прервано? С другой стороны, что произойдет, если инструкция gotoAndPl ay указывает на кадр, содержащий сценарий с инструкцией Stop()? Вызовет ли инструкция gotoAndStop остановку воспроизведения фильма в указанном кадре, если там находится другая операция перехода? Во всех подобных ситуациях применяется следующее правило: при любой операции перехода сценарий, определенный в целевом кадре, исполняется автоматически. Обратите внимание на слово любой. Не имеет значения, какая именно инструкция перехода встретилась в нашем сценарии — gotoAndStop или gotoAndPI ay. В таком подходе есть свои неудобства: бывают ситуации, когда хочется совершить переход к определенному кадру и приостановить воспроизведение фильма до явного вызова инструкции PI ay. Но если вы используете инструкцию перехода с последующим воспроизведением, задав кадр, в сценарии которого находится инструкция Stop, воспроизведение фильма прекратится. Сходным образом, если вы используете операцию gotoAndStop, указывая кадр, в сценарии которого находится инструкция Play, воспроизведение фильма будет продолжаться.

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

Пример фильма. Воспроизведение, остановка и кнопки

Рассматриваемый нами фильм, находящийся в файле StopAtPlay.fla на прилагаемом компакт-диске, иллюстрирует механизм исполнения сценариев, определенных в кадрах, с точки зрения взаимосвязи, существующей между операциями воспроизведения или остановки, с одной стороны, и перехода, с другой стороны. В этом фильме два слоя:

  • Stop or Play (Остановить или воспроизвести);
  • Buttons (Кнопки).

Слой Stop or Play (Остановить или воспроизвести) содержит пять ключевых кадров, в которых определены сценарии. Эти кадры снабжены метками, как показано на рис. 3.6.

Рис. 3.6. Основные кнопки фильма находятся в его начале. Внимательно проследите за ходом воспроизведения фильма при щелчке на каждой из кнопок

Слой Stop or Play

В первом слое ключевые кадры снабжены указанными ниже метками; каждый кадр содержит текстовое сообщение. Приведем список этих меток и сообщений.

  • Кадр 1 (метка stopFirst). Разместите в этом кадре сообщение The Beginning (Начало) и операцию stop().
  • Кадр 10 (метка Playlt). Разместите в этом кадре сообщение This is the Play Place (Здесь фильм воспроизводится) и операцию play().
  • Кадр 18 (метка Stop Me). Разместите в этом кадре сообщение You are stopped (Вас остановили) и операцию stop().
  • Кадр 27 (метка GoAway). Разместите в этом кадре сообщение Go Away! (Уходите прочь!) и операцию gotoAndPlay ("Away").
  • Кадр 36 (метка Away). Сообщение в этом кадре гласит Away (Ушли).

Слой Buttons

В основе организации слоя Buttons (Кнопки) лежит группировка кадров. Кнопки, представленные на рисунке, идентифицируются расположенными под ними

функциональными метками и адресуются в тексте сценариев именно по этим меткам. В первом кадре (stopFirst) определены три экземпляра символа кнопки с именем ButtonUp.

Кнопка Go to Play & Stop

on (release) {

gotoAndStop ("PlayIt"); }

Кнопка Go to Stop & Play

on(release) {

gotoAndStop ("PlayIt"); }

Кнопка Go to & Stop at Go To

on(release) {

gotoAndStop ("GoAway"); }

Кнопки, находящиеся в кадрах Stop Me (Останови меня) и Away (ушли), также являются экземплярами символа кнопки ButtonUp. Они содержат сценарии, состоящие лишь из команды PI ау, и снабжены метками Click to continue (Щелкните для продолжения).

Кнопка Click to continue

on (release) {

play (); }

Запустив этот фильм, внимательно наблюдайте за тем, что происходит на экране. Тщательно изучите сообщения, которые будут появляться на экране, начиная с кадра Playlt и заканчивая кадром Stop Me. Обратите внимание на то обстоятельство, что вы так и не увидели сообщения Go Away! (Уходите прочь!), сценарий которого представлен на рис. 3.7. Это сообщение, несомненно, присутствует в фильме, но так и не выдается на экран.

Рис. 3.7. Сообщение, заданное в кадре Go Away, так и не выдается на экран

Чтобы разгадать тайну исчезнувшего сообщения, внимательно посмотрите на сценарий, определенный в кадре Go Away:

gotoAndPlay ("Away");

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

Последовательное перемещение между кадрами и сценами

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

Перемещение к следующему и предыдущему кадрам

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

on(release) {

prevFrame ();

}

Инструкция перемещения к следующему кадру выглядит столь же просто:

nextFrame();

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

Перемещение к следующей и предыдущей сценам

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

on(release) {

nextScene ();

}

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

prevScene ();

Переход к новой сцене приводит к довольно интересным последствиям. Если вы последовательно воспроизводите кадр за кадром, то номер первого кадра очередной сцены будет на единицу больше номера последнего кадра предыдущей. Например, если номер последнего кадра сцены 1 равен 30, то первый кадр сцены 2 обладает номером 31. По этому номеру к данному кадру и следует обращаться. Следующая инструкция предписывает необходимость перейти к кадру 1 сцены 2 и воспроизвести его.

gotoAndPlay(31)

Для достижения того же результата можно также воспользоваться следующей инструкцией:

gotoAndPlay("Scene 2".1)

Однако очевидно, что к первому кадру следующей сцены намного удобнее перейти с помощью операции nextScene().

Все метки кадров доступны в любой сцене, находящейся в пределах главной киноленты. Система Flash будет искать встретившуюся в сценарии метку во всех сценах главной киноленты. Допустим, у нас есть фильм-игра. В нем 15 сцен; в кадре 27 сцены 11 находится сценарий, производящий подсчет очков. В ссылках вида Scene 11 или Frame 27 легко запутаться; гораздо лучше определить метку Score (Счет), которая будет доступна в любом кадре любой сцены нашей игры.

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

Пример фильма. Поиск нужного кадра и сцены

В рассматриваемом фильме (файл FrameScene.fla на прилагаемом компакт-диске) две сцены. Первая из них содержит два слоя; в другой используется один слой, как показано ниже.

  • Output (Вывод) — в сцене 1;
  • Buttons (Кнопки) — в сцене 1;
  • Сору Неге (Копировать сюда) — в сцене 2.

Слой Output сцены 1

Первое, что нужно сделать как в слое Output (Вывод), так и в слое Buttons (Кнопки), — это создать кадр с номером 15, чтобы определить границы сцены. Большинство сценариев нашего фильма связано с кнопками, однако в слое Output есть также один сценарий, заданный для кадра 1. Этот сценарий представляет собой команду остановки:

Stop():

Поместите рядом с надписью Frame Number (Номер кадра) редактируемое текстовое поле, размеры которого достаточны для вывода двух цифр (рис. 3.8). Выберите для этого поля вариант Input Text (Набираемый текст) в раскрывающемся списке панели Text Options (Параметры текста) и задайте имя переменной output в соответствующем поле той же панели. В табл. 3.1 представлены необходимые характеристики создаваемого текстового поля.

Рис. 3.8. Сцена 1 содержит кнопки, обеспечивающие последовательное перемещение между кадрами и сценами

Таблица 3.1. Свойства текстового поля

Имя переменной
Флажок Border/Bg
Способ выравнивания
Output
Снят
По правому краю

 

Слой Buttons сцены 1

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

  • Кнопка <. Для всех кнопок задан код на основе механизма локальных переменных, обеспечивающий отображение информации о текущем кадре. Конструкция с идентификатором _root позволяет любому кадру любой сцены, находящемуся в главной киноленте, отображаться через некое значение, заданное относительно первого кадра первой сцены. Свойство _currentframe возвращает текущий кадр заданного клипа или главной киноленты (если указан идентификатор _root, как в нашем случае). Таким образом, все ситуации смены кадра отражаются в текстовом поле window. Кнопка < обеспечивает перемещение к предыдущему кадру.

    on(release) {

    prevFrame ():

    var a = _root._currentframe;

    output = a; }

  • Кнопка <S. Эта кнопка обеспечивает перемещение к предыдущей сцене.

    on(release) {

    prevScene ();

    var a = _root._currentframe;

    output = a; }

  • Кнопка S>. Эта кнопка обеспечивает перемещение к следующей сцене.

    on(release) {

    nextScene ():

    var a=_root._currentframe;

    output = a: }

  • Кнопка George. Эта кнопка обеспечивает перемещение к кадру с именем George (Джордж). Обратите внимание на тот факт, что здесь нет указания на сцену, к которой осуществляется переход, хотя кадр George относится ко второй сцене.

    on(release) {

    gotoAndPlay ("George");

    а = _root._currentframe;

    output = a; }

  • Кнопка Scene 2 Frame 8. Эта кнопка обеспечивает перемещение к кадру 8 во второй сцене. По этому адресу находится кадр George. Поскольку здесь присутствует номер сцены, номер кадра не задается относительно начала фильма; используется абсолютный номер кадра в рамках сцены 2.

    on(release) {

    gotoAndPlay ("Scene 2".8);

    a=_root._currentframe;

    output=a;

    }

  • Кнопка Frame 23. Эта кнопка обеспечивает перемещение к кадру 23. В сценарии этой кнопки не задан номер сцены; нет здесь и метки кадра. Однако мы все равно попадаем к кадру George (Джордж), то есть к кадру 8 сцены 2, так как в инструкции перехода с последующим воспроизведением используется номер кадра, заданный относительно кадра 1 сцены 1.

    on(release) { {

    gotoAndPlay (23);

    a=_root._currentframe;

    output=a;

    }

Слой Copy Here сцены 2

Сцена 2 в рассматриваемом фильме была введена лишь для демонстрации механизма перехода между сценами и отличается простотой. Эта сцена представлена на рис. 3.9.

Рис. 3.9. Сцена 2 очень похожа на сцену 1

Создать сцену 2 очень просто — все сводится к копированию и вставке ряда элементов сцены 1. Эта операция производится следующим образом.

  1. Выполните команду Insert > Scene (Вставка > Сцена). Новая сцена автоматически получает имя Scene 2 (Сцена 2) и те же характеристики, что и первая сцена, включая размер рабочей зоны и цвет фона.
  2. Выберите инструмент Arrow (Стрелка) в наборе инструментов и выделите с его помощью четыре верхних кнопки, их метки, поле для вывода и надпись, расположенную над ним. Выполните команду Edit > Сору (Правка > Копировать) или воспользуйтесь комбинацией клавиш Ctrl+C (Windows) либо Cmd+C (Macintosh).
  3. Щелкните на кнопке с изображением «хлопушки», находящейся в правом верхнем углу окна рабочей зоны, чтобы переключиться на сцену 2.
  4. Щелкните на представлении кадра 15 в киноленте и нажмите клавишу F5, чтобы расширить первый слой до 15 кадров. Назовите этот слой Сору Неrе (Копировать сюда).
  5. Выполните команду Edit > Paste In Place (Правка > Вставить на место), чтобы поместить в сцену 2 данные, скопированные из сцены 1. В нижней части рабочей зоны сделайте надпись, информирующую пользователя о том факте, что текущий кадр относится к сцене 2.
  6. Сделайте кадр 8 ключевым. С помощью инструмента Text (Текст) введите текст George at Frame 8 (Джордж в кадре 8), как показано на рисунке. Добавьте к кадру сценарий, содержащий команду остановки stop().
  7. Добавьте ключевой кадр в кадре 9 и удалите надпись George at Frame 8 (Джордж в кадре 8). В результате это сообщение будет появляться только в кадре 8 сцены 2.
  8. Добавьте кнопку с меткой George (Джордж) к четырем кнопкам, перенесенным из сцены 1.

    on(release) {

    gotoAndPlay ("Scene 2", "George");

    a=_root._currentframe;

    output=a; }

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

Переход к кадрам в других кинолентах

Задача перехода к кадрам, находящимся на той же киноленте, что и исходный, решается относительно просто. В переходе с одной киноленты на другую также нет ничего сложного, однако здесь нужно затратить несколько больше усилий, эта проблема требует более продуманного подхода. У клипов есть свои киноленты, и для того чтобы перейти к определенному кадру клипа, необходимо в первую очередь адресовать сам клип с помощью имени экземпляра и пути. Чтобы осуществить переход к определенному кадру другой киноленты с последующим воспроизведением или остановкой, имя соответствующей операции должно предваряться путем к нужному объекту. Вы можете потребовать от клипа перехода к любому кадру на киноленте этого клипа. Так, в приведенном ниже сценарии клип с именем экземпляра Driver (Водитель) должен перейти к кадру с именем Starting Line (Линия старта) и продолжить воспроизведение.

_root.driver.gotoAndPlay("Starting Line")

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

Пример фильма. Управление другими кинолентами

В фильме, содержащемся в файле Play Away, fla на компакт-диске, прилагаемом к настоящей книге, определены кнопки, управляющие движением мячика, который является объектом другой киноленты. В этом фильме лишь два слоя, один из которых относится к главной киноленте, а другой — к клипу:

  • MainTimeLine (Главная кинолента);
  • Bouncer (Попрыгунчик).

Рис. 3.10. Главная рабочая зона с кнопками, содержащими сценарии, которые управляют ходом воспроизведения клипа

Фильм чрезвычайно прост; фактически в нем нет ничего, кроме трех кнопок в слое MainTimeLine (Главная кинолента) и клипа в слое Bouncer (Попрыгунчик). Необходимо средствами кадрирования (tweening) создать клип с изображением движущегося мячика, разместить этот клип на главной киноленте, а затем добавить три кнопки, которые помещают мячик в определенное место на киноленте клипа. На рис. 3.10 показано окно главной рабочей зоны, а на рис. 3.11 демонстрируется клип в режиме редактирования символов.

Рис. 3.11. Клип в режиме редактирования символов. Обратите внимание на ключевой кадр с меткой Fred, а также на знаки кадрирования символов в киноленте

Слой Bouncer

Как фильм в целом, так и клип представляют собой хорошие иллюстрации способов адресации в ActionScript объектов, расположенных на разных кинолентах.

  1. Создайте новый фильм и выберите команду Insert > New Symbol (Вставка > Новый символ). Установите в диалоговом окне Symbol Properties (Свойства символа) переключатель Movie Clip (Клип) и назовите новый клип Bounce (Прыжок). Щелкните на кнопке ОК, чтобы перейти в режим редактирования символов.
  2. В режиме редактирования символов нарисуйте мячик, выбрав инструмент Oval (Овал) в наборе инструментов. Щелкните на представлении двадцатого кадра и нажмите клавишу F5, чтобы расширить слой до 20 кадров. Переименуйте слой в Bouncer (Попрыгунчик).
  3. Сделайте ключевыми кадры 3, 10 и 15. Переместите указатель воспроизведения к первому кадру.
  4. Последовательно щелкая на ключевых кадрах, перемещайте шар в нужную
  5. Щелкните на кадре 1 и откройте панель Frame (Кадр), выбрав команду Window > Panels > Frame (Окно > Панели > Кадр). В панели Frame выберите пункт Shape (Форма) в раскрывающемся списке Tweening (Кадрирование). Выберите в списке Blend (Преобразование) значение Distributive (Распределенное), а в поле Easing (Ускорение) введите значение 0. Повторите эти действия для других ключевых кадров. Протестируйте клип и убедитесь, что при его воспроизведении мячик действительно движется.

Слой MainTimeLine

Вернитесь к главной киноленте, щелкнув на значке Scene 1 (Сцена 1) в верхнем левом углу окна рабочей зоны. Затем перетащите мышью в рабочую зону экземпляр клипа Bounce (Прыжок). Расположите его так, как показано на рис. 3.10 и 3.11. Выделите клип и откройте панель Instance (Экземпляр) с помощью команды Window > Panels > Instance (Окно > Панели > Экземпляр) или воспользовавшись комбинацией клавиш Ctrl+I (Windows) либо Cmd+I (Macintosh). В поле Name (Имя) введите имя Ball (Мяч). Это имя экземпляра будет использоваться во всех ссылках на него.

После этого нужно создать три кнопки. В рассматриваемом примере автор воспользовался кнопками из общей библиотеки Buttons (Кнопки) — это кнопки Go to 1 (Переход 1), Go to 2 (Переход 2) и Go to 3 (Переход 3). Затем в режиме редактирования символов метки кнопок были изменены и названы Frame 5 (Кадр 5), Fred (Фред) и Play (Воспроизвести) соответственно. (Чтобы перейти в режим редактирования символов, достаточно дважды щелкнуть на одной из кнопок.)

  • Кнопка Frame 5. Первая из добавленных нами кнопок просто отправляет клип к кадру 5. Путь, отсчитываемый от главной киноленты, позволяет идентифицировать клип по имени его экземпляра; путь заканчивается спецификацией необходимой операции.

    on(release) {

    _root.ball.gotoAndStop(5);

    }

  • Кнопка Fred. Вторая кнопка призвана продемонстрировать тот факт, что в различных кадрах можно легко работать с удаленными кинолентами.

    on(release) {

    _root.ball.gotoAndStop("Fred");

    }

  • Кнопка Play. Последняя кнопка возобновляет работу удаленной киноленты после ее остановки с помощью одной из двух других кнопок.

    on(release) {

    _root.ball .play ();

    }

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

Назначение внешних сценариев

Скорее всего, у каждого из вас есть наработанный код, который вы регулярно используете в различных сценариях. Будет лучше, если вы запишете этот код таким образом, чтобы его не приходилось переписывать заново всякий раз, когда он понадобится вам в очередном сценарии. Для записи сценария Action-Script можно применять любые текстовые редакторы, например такие, как Блокнот (Windows) или МиниТекст (Macintosh). Допустим, вы написали на языке ActionScript чрезвычайно сложную процедуру сортировки и не желаете тупо копировать ее всякий раз, когда она вам понадобится. В пакете Flash 5 предусмотрена операция include, которая позволяет загружать сценарии, находящиеся во внешних текстовых файлах. Формат использования этой операции чрезвычайно прост. Скажем, приведенный ниже образец сценария кнопки загружает текстовый файл remote.as (расширение .as является общепринятым, но не обязательным).

on(release) {

#include "remote.as"

}

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

При использовании инструкции include в сценариях кнопок и клипов не следует включать во внешний текстовый файл обработчики событий. Все обработчики событий, такие как on(release), импортируют код сценария непосредственно из текстового файла и исполняют его. Дополнительный обработчик события предотвращает выполнение каких-либо альтернативных операций. Скажем, если вы хотите, чтобы некая кнопка отсылала фильм к кадру с именем Score, вам достаточно разместить в текстовом файле следующую строку кода:

gotoAndStop("Score");

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

Два языка, один слой, одна кинолента

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

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

На рис. 3.12 показан макет начальной страницы — внешний вид рабочей зоны в начале фильма, список необходимых слоев и большинство меток, приписанных кадрам.

Рис. 3.12. Макет рабочей зоны со списком слоев и меток, обеспечивающих перемещение между кадрами

Проект. Игра с числами

Работающую версию рассматриваемого фильма вы можете найти на прилагаемом компакт-диске в файле BilingualCounter.fla. Фильм представляет собой обучающую программу, демонстрирующую методику работы с различными путями в одном фильме. Один из путей соответствует английским числительным, другой — испанским. В фильме следует создать три слоя:

  • Count (Счет);
  • Frame Buttons (Кнопки кадров);
  • Output (Вывод).

Слой Count

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

  1. Щелкните на представлении кадра 55 на киноленте и вставьте новый кадр, выбрав команду меню Insert > Frame (Вставка > Кадр) или воспользовавшись клавишей F5. Вставьте ряд ключевых кадров, начиная с кадра 5, с интервалом в пять кадров (для этого нужно щелкнуть на представлении соответствующего кадра и выполнить команду Insert > Keyframe (Вставка > Ключевой кадр) либо нажать клавишу F6).
  2. Назначьте первому ключевому кадру (кадру 1) метку Ноте (Домой) и введите для него в панели операций команду Stop.
  3. Английские и испанские числительные чередуются в ключевых кадрах, последовательно возрастая от one и uno (один) до five и cinco (пять). Порядок следования меток ключевых кадров выглядит следующим образом: One (Один), Uno (Один), Two (Два), Dos (Два), Three (Три), Tres (Три), Four (Четыре), Quatro (Четыре), Five (Пять) и Cinco (Пять).
  4. В каждом ключевом кадре производятся две операции, устанавливающие значения двух приписанных к текстовым полям переменных: переменной Number, предназначенной для хранения цифрового представления чисел, и переменной Word для их словесного представления. Например, строка 3 помещается в переменную Number, а строка Tres (Три) — в переменную Word. Все значения являют собой строковые литералы, так как никаких вычислений здесь производить не требуется. Имена ключевых кадров заданы английскими и испанскими числительными (рис. 3.13).
  5. Для каждого ключевого кадра выполните команду Modify > Frame (Правка > Кадр), воспользуйтесь комбинацией клавиш Ctrl+F (Windows) либо Cmd+F (Macintosh) или дважды щелкните на представлении соответствующего кадра. В списке Actions (Операции) панели Frame Actions (Операции кадра) дважды щелкните на пункте Set variable (Задать переменную) и вставьте в текст сценария приведенный ниже код с цифровым написанием соответствующего числа и числительным, указанным в метке кадра. Для первого англоязычного кадра — кадра One (Один) — вы должны получить следующий сценарий: number = "1" word = "One"

Аналогичный код должен присутствовать во всех ключевых кадрах.

Рис. 3.13. Все ключевые кадры содержат три кнопки. Сценарий третьей кнопки позволяет последовательно переходить к очередным ключевым кадрам

Слой Frame Buttons

Создайте новый слой и разместите его непосредственно под слоем Count (Счет). Теперь необходимо ввести в фильм ключевые кадры и кнопки. Для этого следует выполнить следующие шаги.

  1. Добавьте новые ключевые кадры непосредственно под ключевыми кадрами, определенными в слое Count (Счет). Ключевые кадры вставляются с интервалом в пять кадров.
  2. Для каждого ключевого кадра произведите двойной щелчок на строке Stop (Остановить) в списке Basic Action (Основные операции) панели Frame Actions (Операции кадра). В поле с текстом сценария появится строка

    stop();

  3. Выделите первый ключевой кадр. Создайте две кнопки разных цветов (автор сделал две трехмерные кнопки — зеленую и серебристую). Сохраните одну из них под именем Engbutton, а другую — под именем Spbutton. Остальные кнопки в нашем фильме представляют собой экземпляры этих двух.
  4. Разместите экземпляры кнопок в рабочей зоне. Надпишите одну из кнопок словом Espacol (Испанский), а вторую — словом English (Английский) с помощью инструмента Text (Текст), как показано на рис. 3.12. Перейдите в панель операций и введите приведенный ниже текст сценария, выделив кнопку Espacol:

    Кнопка Espacol

    on(release) {

    gotoAndStop("Uno")

    Введите также соответствующий сценарий для кнопки English (Английский):

    Кнопка English

    on(release) {

    gotoAndStop("One")

  5. В ключевых кадрах слоя Frame Buttons (Кнопки кадров) каждый испано-язычный кадр требует наличия кнопки, осуществляющей переход к следующему испаноязычному кадру — кадрам Dos (Два), Tres (Три), Quatro (Четыре) и Cinco (Пять), а для всех англоязычных кадров необходимы кнопки, обеспечивающие перемещение к следующему англоязычному кадру — кадрам Two (Два), Tree (Три), Four (Четыре) и Five (Пять). К примеру, в ключевом кадре Tres надо создать следующий сценарий кнопки:

    on(release) {

    gotoAndStop("Quatro") }

Выровняйте кнопки и удостоверьтесь, что не перепутали англо- и испано-язычную версии.

СОВЕТ

ВЫРАВНИВАНИЕ КНОПОК. Чтобы аккуратно выравнивать кнопки в кадрах, можно использовать панель Info (Информация), позволяющую удостовериться в том, что значения координат X или Y различных кнопок совпадают.

  1. Дойдя до ключевых кадров Five (Пять) и Cinco (Пять), введите в верхней части рабочей зоны надпись Good Job! или Que bueno! (Хорошо поработали). Сценарии кнопок для Cinco и Five выглядят следующим образом:

    on (release) {

    word = "" number = "" gotoAndStop("Home")

    }

Этот сценарий очищает содержимое текстовых полей и отсылает фильм к первому кадру — Ноте (Домой).

Слой Output (Вывод) состоит из двух текстовых полей для редактирования и двух надписей, показанных на рис. 3.12. В табл. 3.2 вы найдете параметры указанных полей.

С помощью инструмента Text (Текст) вставьте по центру рабочей зоны под текстовыми полями надписи Know your numbers и Entiende los numeros (Знай свои числа). Теперь фильм приобрел законченный вид. Протестируйте программу, выполнив команду Control > Test Movie (Управление > Тестировать фильм) или воспользовавшись комбинацией клавиш Ctrl+Enter (Windows) либо Cmd+Return (Macintosh). Рисунок 3.14 демонстрирует внешний вид экрана по окончании фильма.

Таблица 3.2. Свойства текстового поля

Имя переменной
Флажок Border/Bg
Способ выравнивания
number
Снят
По центру
word Снят По центру

 

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

Создание динамического меню

По сравнению с рассмотренной выше учебной программой данный проект весьма прямолинеен и отличается практичностью. Мы хотим создать динамическое меню, обеспечивающее демонстрацию ассортимента товаров, предлагаемым покупателям через Web. Вместе с тем наше меню будет пытаться задерживать покупателей на сайте электронного магазина. Во многих отношениях динамическое меню напоминает обычные меню HTML, в которых используются фреймы. Полоса меню располагается сбоку от рабочей зоны фильма, и пользователь имеет возможность быстро переключаться между различными группами товаров. Здесь важно постоянно держать полосу меню — инструмент навигации — в поле зрения пользователя. Реализовать подобный проект средствами ActionScript при хорошей организации данных совсем нетрудно.

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

Рис. 3.15. Начальная страница, слои, кнопки и меню воображаемого сайта электронной коммерции

Проект. Начальный этап создания сайта электронной коммерции

Рассматриваемый образец фильма находится на прилагаемом компакт-диске в файле ecommerceMenu.fla. В этом фильме меню используется как средство выбора товаров на сайте электронной коммерции. В фильме созданы три слоя:

  • Selections (Отобранные товары);
  • Buttons (Кнопки);
  • Menu Bar Bg (Фон полосы меню).

Слой Selections

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

ПРИМЕЧАНИЕ

В этом учебном разделе мы будем указывать только клавиатурные соответствия команд меню. Они намного ускоряют работу.

Чтобы создать слой Selections (Отобранные товары), следуйте приведенным ниже инструкциям.

  1. Выделите как минимум шестой кадр и нажмите клавишу F5, чтобы вставить новый кадр.
  2. Вставьте пять ключевых кадров, выделяя соответствующие позиции на киноленте и нажимая клавишу F6.
  3. Начиная с кадра 1, задайте имена ключевых кадров: Ноте (Домой), Computers (Компьютеры), Network (Сеть), Monitors (Мониторы), Printers (Принтеры) и PDAs (Электронные секретари). Чтобы назначить ключевому кадру имя, следует выделить этот кадр и ввести метку в поле Label (Метка) панели Frame (Кадр).
  4. Откройте список Basic Actions (Основные действия) в панели операций и дважды щелкните на пункте Stop (Остановить), предварительно выделив соответствующий кадр. Таким образом, сценарием для всех кадров будет команда stop ().
  5. После создания слоев Buttons (Кнопки) и Menu Bar Bg (Фон полосы меню) последовательно выделяйте ключевые кадры, начиная с кадра Ноте (Домой), и при помощи инструментов ввода текста и графики добавляйте информацию, которую вы хотели бы видеть на соответствующей странице сайта. Вы можете также разместить здесь любые готовые графические изображения, импортировав их. По завершении этой деятельности слой можно считать готовым.

СОВЕТ

РАБОТА С НЕСКОЛЬКИМИ КЛЮЧЕВЫМИ КАДРАМИ. Если вы собираетесь сгруппировать все ключевые кадры, протащите мышь с нажатой кнопкой через представление нужных вам кадров на киноленте и нажмите клавишу F6, чтобы создать несколько ключевых кадров одновременно.

Слой Menu Bar Bg

В слое Menu Bar Bg (Фон полосы меню) можно расположить черный прямоугольник, визуально отделяющий полосу меню от содержимого страницы, как показано на рис. 3.16. Для этой операции используется инструмент Rectangle (Прямоугольник). Нарисуйте вертикальный прямоугольник на всю длину страницы, достаточно широкий, чтобы вместить кнопки. После этого щелкните на кнопке с изображением замка в списке слоев в строке Menu Bar Bg.

Рис. 3.16. Меню присутствует на всех страницах фильма

Слой Buttons

Слой Buttons (Кнопки) должен быть расположен над слоем Menu Bar Bg (Фон полосы меню), иначе фон будет закрывать кнопки. Назначение кнопок состоит в том, чтобы обеспечить переход к соответствующим кадрам и отображение в рабочей зоне определенного содержимого. Для решения данной задачи можно использовать следующий алгоритм.

  1. Выберите изображение для кнопки, выполнив команду Window > Common Libraries > Buttons (Окно > Общие библиотеки > Кнопки). Для рассматриваемого фильма мы выбрали кнопку Push Button Yellow (Кнопка желтая).
  2. Перетащите экземпляр кнопки из окна Library — Button.fla (Библиотека кнопок) в рабочую зону. Откройте панель Info (Информация) щелчком на кнопке Show Info (Показать информацию) в нижней части окна рабочей зоны — это первая кнопка слева. Выделите экземпляр кнопки.
  3. Вы можете уменьшить кнопку в два раза средствами панели Info (Информация), соответствующим образом изменив значения W (Ширина) и Н (Высота).
  4. Выделите кнопку и перетаскивайте ее, удерживая клавишу Alt (Windows) либо Option (Macintosh), чтобы получить четыре копии. Теперь у вас должно быть пять экземпляров кнопки нужного размера.
  5. Нарисуйте шестую кнопку и назовите ее Menu (Меню). С помощью инструмента Text (Текст) введите рядом с каждой кнопкой название соответствующей группы товаров.
  6. Последовательно выделяйте все кнопки и вводите для них сценарии в поле редактора сценариев панели операций. Каждый сценарий должен содержать инструкцию перехода к соответствующему ключевому кадру. Текст сценария приведен ниже (в этих сценариях следует использовать метки ключевых кадров, а не метки кнопок):

    on(release) {

    gotoAndStop("Computers") }

  7. Выделите кнопку Menu (Меню) и введите следующий сценарий:

    on(release) {

    gotoAndStop("Home")

    }

Кнопка Menu (Меню) обеспечивает пользователю возможность возврата к начальной странице. Наличие кнопки возврата к домашней, или основной, странице крайне важно для фильма, в котором используется меню. Не будь такой кнопки, пользователь может решить, что он заблудился, и никогда больше не вернется на ваш сайт.

В данном уроке мы сделали важный шаг в изучении ActionScript — изучили особенности использования операции перехода в контексте фильмов Flash. Поработав с ActionScript, вы вскоре обнаружите, что применяете операцию перехода чаще, чем любую другую конструкцию этого языка. Именно переход обеспечивает управление ходом воспроизведения фильма и в конечном счете определяет то, что видит на экране пользователь. В уроке 4 вы познакомитесь с чрезвычайно мощными структурами, применяемыми в условных выражениях. Однако не следует забывать, что без операции перехода вся эта мощь будет работать «вхолостую».

Что нового мы узнали?

В этом уроке мы научились...

  • Понимать необходимость включения сценариев в фильмы.
  • Создавать метки в кадрах.
  • Переходить к заданным кадрам.
  • Выполнять воспроизведение и остановку фильма.
  • Переходить между кадрами и сценами.
  • Выполнять поиск кадра и сцены.
  • Переходить к кадрам в других кинолентах.
  • Управлять другими кинолентами.
  • Использовать внешние сценарии.
  • Строить динамическое меню.

 

Copyright © 2006-09.