- •Лабораторные работы 52 Flash mx. Создание сценария для кадра
- •Ход работы:
- •Случайное перемещение во флэш с использованием ActionScript
- •Рандомное движение во Flash
- •Давайте разберемся, что делает код, который мы вставили:
- •Замедление при щелчке мышки
- •Теперь мы объясним, как работает код
- •Аналоговые часы во Flash mx
- •Аналоговые часы
Теперь мы объясним, как работает код
Во-первых, в объяснении нуждается функция 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 %>
