Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

Создание сценария для кадра Создание сценария для кадра Связав сценарий с некоторым ключевым кадром фил

Работа добавлена на сайт samzan.ru: 2015-07-05


Лабораторные работы 52 Flash MX. Создание сценария для кадра

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

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

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

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

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

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

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

 На самом деле действия goto как такового не существует, в ActionScript используются два действия, реализующие два варианта перехода на требуемый кадр или сцену: gotoAndPlay (Перейти и воспроизвести) и gotoAndStop (Перейти и остановить).

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

  1.  Scene (Сцена) - задает сцену, на которую требуется перейти, или на которой расположен кадр, на который требуется перейти; значение параметра выбирается с помощью раскрывающегося списка, который содержит четыре основных пункта:
  2.  <current scene> — текущая сцена;
  3.  <next scene> — следующая сцена; переход возможен только на первый кадр следующей сцены;
  4.  <previous scene> - предыдущая сцена; переход возможен только на первый кадр предыдущей сцены;
    Scene 1 — имя, используемое по умолчанию для первой сцены фильма; если фильм содержит более одной сцены, то в список автоматически добавляются их имена;
  5.  Туре (Тип) — задает способ указания кадра, на который требуется перейти; значение параметра выбирается с помощью раскрывающегося списка, который содержит пять пунктов: 
  6.  Frame Number (Номер кадра) — кадр задается его порядковым номером на временной диаграмме; номер кадра должен быть указан в расположенном ниже поле Frame;
  7.  Frame Label (Метка кадра) — кадр задается его меткой (именем); метка для кадра должна быть предварительно указана в поле Label панели инспектора свойств;
  8.  Expression (Выражение) - номер или метка кадра определяются как результат вычисления выражения; выражение должно быть введено в расположенном ниже поле Frame;
  9.  Next Frame (Следующий кадр) - переход выполняется на следующий кадр той же сцены;
  10.  Previous Frame (Предыдущий кадр) — переход выполняется на предыдущий кадр той же сцены.

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

Основная команда, которая используется чаще всего - Stop. Для остановки всего фильма, чтобы передать управление пользователю.

Комментарии и метки кадров

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

Что же такое комментарии и метки кадров:

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

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

 Поясню на примере: если, создавая свой фильм, Вы задали для одной из кнопок, или действию на ввод информации пользователем, переход на какой-то кадр, например 162, а затем отредактировали предыдущие кадры таким образом, что данное действие передвинулось, например на 173-й кадр, то Вам придется искать все места в скрипте где упоминался 162-й кадр. Программисты знают, что самый простой выход в данном случае - использование имени функции или подпрограммы. Метка, как раз и является своеобразным именем подпрограммы. Если в скрипте будет фигурировать имя метки, то где бы ни был кадр с данной меткой, Flash передаст управление именно на него.

  1.  Откройте любой ранее созданный проект.
  2.  На любом ключевом кадре щелкните левой кнопкой мыши.
  3.  Посмотрите на окно Properties поле ввода Frame (Фрейм).
  4.  В поле <Fame Label> (Ярлык) введите имя метки.

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


Ход работы:

Задание 1

  1.  Создайте новый ролик.
  2.  Нарисуйте кубик.
  3.  Вставьте пустой фрейм (например, 10) Insert / Blank Keyframe [F7].
  4.  Нарисуйте круг, закрасив его круговой градиентной заливкой придав ему форму шара.
  5.  Вставьте пустой фрейм (например, 20).
  6.  На ключевом кадре с кубом задайте метку "kub".
  7.  Задайте таким же образом ключевому кадру с изображением шара, метку - "shar".
  8.  Вставьте новый слой щелкните на кнопке нового слоя, под списком слоев на Timeline.
  9.  Подготовим к работе символ кнопки.
  10.  Перенесите на сцену Вашу кнопку два раза, создав тем самым два ее экземпляра.
  11.  На одной кнопке напишите - кубик.
  12.  На второй - шар.

Теперь назначим управление для кнопок.

  1.  Щелкните правой кнопкой мыши по кнопке с надписью "Шар".
  2.  Вызовите панель Action, откроем ее.
  3.  Откроем список действий.
  4.  Выбираем команду goto (перейти к…).
    Появится следующий скрипт:


    on (release) {
    gotoAndPlay (1);
    }

В верхней части, как всегда, дополнительные настроечные параметры:

В выпадающем меню Scene, можно выбрать сцену перехода - текущую, предыдущую, следующую или сцену с собственным именем (о сценах в следующих темах).

Кроме сцены мы можем задать переход по:

Frame - кадру, в поле Number - введите номер кадра.

Label - метке, в выпадающем меню будет список установленных Вами меток.

Next Frame - следующему кадру.

Previous Frame - предыдущему кадру

И еще одна галочка Control (Переход и воспроизведение), которая меняет команду с "Go to and Stop" на "Go to and Play".

  1.  Установите переход по метке "shar".
  2.  Задайте реагирование на нажатие мыши и клавиши "S".

Окончательный вид скрипта:

on (release, keyPress "S") {
gotoAndStop (shar);
}

Для второй кнопки создайте аналогичным образом переход на метку "Куб" и реагирование на нажатие мыши и клавиши "С".

Запустите Ваш фильм. Он начал сразу проигрываться. Задайте команду stop на ключевых кадрах. В предыдущей главе было описано как это сделать.

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

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

Задание 2

Случайное перемещение во флэш с использованием ActionScript

Шаг 1

Импортируем фоновый рисунок. Откройте новый файл (File > New). Войдите в его настройки (Modify > Document) и задайте такие размеры сцены: 237px на 268px. Ваш фоновый рисунок должен быть этого же размера. Выберите рисунок, который хотите сделать фоном и импортируйте его в библиотеку (Select File > Import to Library). Откройте библиотеку (Window > Library), найдите свой рисунок, перетащите его на сцену. Слой, в котором находится рисунок, назовите background.

Шаг 2

Создаем клип - точку. Создайте новый слой и назовите его dot. Нарисуйте красный круг инструментом «окружность» . Чтобы круг получился ровным, при рисовании удерживайте shift. Удалите внешнюю линию границы. Задайте кругу размер 2 на 2. Выберите круг и нажмите Modify > Convert to Symbol. В появившемся окне выберите Movie Clip, назовите клип dot_mc и нажмите ок.

Шаг 3

Создаем клип - сердце. Создайте новый слой и назовите его heart. Нарисуйте или импортируйте рисунок сердца. Задайте сердцу размер 10 на 10. Выберите сердце и нажмите Modify > Convert to Symbol. В появившемся окне выберите Movie Clip, назовите клип heart_mc и нажмите ок.

Шаг 4

Добавляем простой ActionScript код клипам. Выберите круг, и откройте панельactions. Скопируйте туда этот код, чтобы придать клипу случайное перемещение:

onClipEvent(enterFrame)
{
_alpha=random(100);
_x=_x=random(50);
_y=_y=random(50);
}



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

Шаг 5

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

Сохраните файл и нажмите Ctrl+Enter, чтобы посмотреть результат.

Задание 3

Рандомное движение во Flash

Шаг 1

Начнем с того, что создадим новый файл, размер сцены установим 550x100 и зададим Frame rate в 30 кадров в секунду. Нарисуем вертикальную линию, по высоте равную высоте клипа. Вы можете поместить ее на любом месте сцены, это не имеет для нас никакого значения. 

Шаг 2

Выделим эту линию и нажмем F8, чтобы перевести ее в movie clip. Имя клипа также не имеет никакого значения. Теперь у нас на сцене вместо линии появился movie clip, содержащий эту линию. 

Шаг 3

Выделим этот movie clip с нашей линией и откроем панель ActionScript, нажавF9. Вы должны убедится, что выделение стоит именно на муви-клипе, иначе у нас ничего не получится. Если все правильно, то смело вставляем в окно ActionScript следующий код:

onClipEvent (enterFrame) {
_x = random(551);
_alpha = random(101);
}

 

Все, ролик готов! Чтобы убедится в его работоспособности, идем Control > Test Movie, или просто нажимает Ctrl+Enter. Если все сделано правильно, то вы должны увидеть прыгающую с места на место линию, как на ролике в начале урока.

Давайте разберемся, что делает код, который мы вставили:

Первая строчка кода "onClipEven(enterFrame) {}" необходима, чтобы действие, описанное двумя строчками ниже, повторялось каждый раз, когда меняется кадр. Вобщем-то, кадр может быть всего один, тут не имеет значение их количество, действие будет выполнятся столько раз в секунду, сколько мы задали в Frame rate в самом начале урока, т.е. 30 раз в секунду бесконечное число секунд. 

Вторая строчка "_x = random (551);" меняет значение горизонтальной координаты линии. Т.е. машина выбирает случайное число от 0 до 550 и присваевает его как координату нашей линии. 

Если мы хотим изменять вертикальную координату, вместо _x стоит указать_y. Есть множество свойств объекта, которые могут изменяться, например:вертикальное положение_y, вертикальное растягивание _yscale,горизонтальное положение_x, горизонтальное растягивание _xscale,непрозрачность _alpha и поворот объекта _rotation. Советую вам поэксперементировать со всеми этими свойствами, например так: 

onClipEvent (enterFrame) {

_x = random(434);
_y = random(50);
_xscale = random (20);
_alpha = random(50);
_rotation = random (44);


Попробуйте подставлять свои значения, добавлять или убирать свойства и посмотрите, что выйдет.

Задание 4

Замедление при щелчке мышки

Шаг 1

1) Создайте новый файл. Размер сцены значения не имеет (в примере 300x200 пикселей).

2) На главной сцене нарисуйте небольшой круг и сделайте его movie clip.

3) Чтобы это сделать, выберите нарисованный вами круг и нажмите F8. В появившемся окне выберите Movie clip, дайте ему имя (на ваше усмотрение), и нажмите OK.

Шаг 2

Ничего сложного, правда? Теперь нам нужно применить экшены к этому клипу. Кликните по нему правой кнопкой мыши и выберите пункт «Actions»(действия). Откроется окно Actions.

Вставьте следующие экшены:

onClipEvent (load) {
_x = 0;
_y = 0;
speed = 5;
}
onClipEvent (mouseDown) {
endX = _root._xmouse;
endY = _root._ymouse;
}
onClipEvent (enterFrame) {
_x += (endX-_x)/speed;
_y += (endY-_y)/speed;
}

Теперь вы можете запустить ролик, нажав комбинацию клавиш CTRL+Enter.

Теперь мы объясним, как работает код


Во-первых, в объяснении нуждается функция onClipEvent(load):

onClipEvent (load) {
_x = 0;
_y = 0;
speed = 5;
}

Эта функция перемещает клип в заданные координаты x и y. Точка (0,0) – это верхний правый угол сцены.
Она также задаёт скорость эффекта (speed = 5;). Чем меньше скорость, тем быстрее эффект. 

Далее рассмотрим предназначение функции onClipEvent(mouseDown):

onClipEvent (mouseDown) {
endX = _root._xmouse;
endY = _root._ymouse;
}

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

И последнее, что нам осталось – это функция onClipEvent(enterFrame):

onClipEvent (enterFrame) {
_x += (endX-_x)/speed;
_y += (endY-_y)/speed;
}

Это цикл, который берет текущие (x,y) координаты клипа и вычитает их из endX и endY переменных (которые вы задаете, когда кликаете мышью по сцене). Это значение становится все меньшим, т.к. клип приближается к выбранной точке и каждый раз делится на скорость. Это заставляет клип двигаться быстрее, когда он далеко от точки и медленнее, когда он к ней приближается.

Задание 5

Аналоговые часы во Flash MX

Шаг 1

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

Создайте 5 слоёв и назовите их - interface, sec, min, hour и actions. 

Шаг 2

Вставьте фон (циферблат), который вы нарисовали в первый кадр слояinterface.

В первом кадре слоя sec нарисуйте линию. Выберите её и нажмите F8. Назовите её sec_mc, тип выберите Movie clip. Там, где написано registration, обозначьте нижний средний квадрат. Нажмите OK. 

Шаг 3

1) Разместите sec_mc (он будет секундной стрелкой) по центру циферблата. Назовете его «sec» в панели Instance.

2) Перетащите sec_mc из библиотеки в первый кадр слоя min (он будет минутной стрелкой). Увеличьте его длину примерно на 3 пикселя. Разместите его по центру циферблата. Назовете его «min» в панели Instance.

3) Перетащите sec_mc из библиотеки в первый кадр слоя hour (он будет часовой стрелкой). Увеличьте его длину примерно на 5 пикселей. Разместите его по центру циферблата. Назовете его «hour» в панели Instance.

4) Скопируйте этот код в экшены первого кадра слоя actions:

time=new Date(); // объект time 
seconds = time.getSeconds()
minutes = time.getMinutes()
hours = time.getHours()

hours = hours + (minutes/60);

seconds = seconds*6; // считаем секунды
minutes = minutes*6; // считаем минуты
hours = hours*30; // считаем часы

sec._rotation=seconds; // задаём значение параметра rotation
min._rotation=minutes; // задаём значение параметра rotation
hour._rotation=hours; // задаём значение параметра rotation

Во всех слоях создайте по дополнительному кадру (F5). Нажмите Ctrl+Enter, чтобы запустить ролик.

Аналоговые часы

Шаг 1

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

Шаг 2

Выберите минутную стрелку, сделайте её MovieClip нажатием клавиши F8 и назовите её MinuteHand. То же самое проделайте с часовой стрелкой и назовите её HourHand. Каждой стрелке нужно также присвоить соответствующее instance name (панель properties). Создайте новый слой и переместите в него одну из стрелок. Проверьте появились ли обе стрелки в библиотеке. 

Шаг 3

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

Шаг 4

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

Шаг 5

Создайте еще один слой и нарисуйте в нем циферблат ваших часов. Добавьте второй кадр во всех слоях (выбираем кадр > F5). В слое actions второй кадр будет ключевым (выбираем кадр > F6). В него нужно вставить этот код:

Set Variable: "h" = Hour
Set Variable: "m" = Minute
If (h > 12)
Set Variable: "h" = h - 12
End If
Set Variable: "HourAngle" = h*30 + m/2
Set Variable: "MinuteAngle" = m*6
Set Property ("HourHandMovie", Rotation) = HourAngle
Set Property ("MinuteHandMovie", Rotation) = MinuteAngle

Шаг 6

Этот код переводит значения часов и минут в углы в градусах и меняет свойство Rotation клипов стрелок в соответствии с полученными углами. 

Шаг 7

Вот структура файла clock.asp, который предоставляет значения часов и минут нашим часам.

<%@Language = "VBScript"%>
<%
Option Explicit
Response.Buffer = True
Response.Expires = -1000
Response.Write "Hour=" & Hour(Now) & "&Minute=" & Minute(Now)
Response.Flush
%>




1.  ЦБ РФ ~ статус функции основные операции
2. Договора заключения сделок по недвижимости
3. Вариант 1 1.Заключение сторонами договора не предусмотренного законом или иными правовыми актами- д
4. экономическое движение объединяющее свыше 800 миллионном человек
5. е переработанное и дополненное Допущено Министерством образования Российской Федерации в качестве уче
6. Тема над которой я работаю носит название Развитие восприятия мышления и речевой деятельности детей старш.html
7. Теория обучения и педагогические технологии
8. СЕВЕРОКАВКАЗСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ ДНЕВНИК ПРОИЗВОДСТВЕННОЙ ПРАКТИКИ С
9. старший в роде ака поддержал Мункэ вероятно надеясь получить полную автономию для своего улуса
10. Троцкистский роман Леонида Леонова
11. Проект производства формалина
12. Виды и условия действительности сделок
13. Где Аллах Хвала Аллаху Господу Миров
14. С физикой от счетов к современным компьютерам
15. Созвездия звёздного неба
16. на тему Сравнительноисторические модели экономического роста и теории модернизации Вы
17. Я Национальные инвестиционные проекты РФ Региональные проекты Омской Области ИНВЕСТИЦИИ от лат
18. Зарождение философии как свободного критического мышления
19. Коротко о мочекаменной болезни у коше
20. тема дисциплины Содержание Р1 Ключевые понятия курса Русский