В этом уроке я покажу вам, как создать стильные аналоговые часы с использованием ActionScript 3.0. Мы будем использовать полученный SWF-фильм с Screentime для Flash, чтобы создать полнофункциональную заставку. Время повеселиться
Шаг 1: Краткий обзор
Используя объект Date и его свойства, мы получим день, часы, минуты и секунды и будем использовать простую математику для отображения полученных данных в аналоговых часах. Обновления будут обрабатываться таймером .
Кроме того, вы можете добавить цифровые часы к заставке, следуя этой инструкции FlashTuts + .
Шаг 2: Начало
Откройте Flash и создайте новый файл Flash (ActionScript 3).
Установите размер сцены на 640×400 и добавьте серый линейный фон (#DBDBDD, # B3B2B7). Screentime автоматически масштабирует фильм до полного экрана, поэтому нам не нужно устанавливать сцену в полном разрешении.
Шаг 3: Фоновые часы
Мы начнем с создания фона часов.
Выберите инструмент Oval Tool (O) и нарисуйте круг размером 250×250 px и добавьте черный линейный фон (# 313131, # 000000). Используйте инструмент Gradient Transform Tool (F), чтобы повернуть градиент, чтобы он выглядел следующим образом:
Создайте еще один круг, на этот раз 248×248, с этим линейным градиентом (# 595959, # 000000). Опять же, используйте Gradient Transform Tool, чтобы вращать и регулировать градиент.
Шаг 4: Числа
Теперь давайте добавим цифры к нашим часам.
Выберите инструмент Text Tool (T), выберите шрифт по вашему выбору и подходящий размер для часов. Я использовал Myriad Pro Regular, 22 Pt, #DDDDDD.
Напишите числа в одном TextField для каждого и выровняйте их по часам, это может быть немного трудно без справки, проверьте направляющие на изображениях.
По горизонтали:
По вертикали:
Шаг 5: Стрелки часов
Время создавать стрелки часов.
Выберите инструмент Poly Star (нажмите и удерживайте кнопку «Прямоугольник»), затем на панели свойств нажмите кнопку «Параметры» в разделе «Настройки инструмента». Измените количество сторон на 3.
Создайте белый треугольник размером 20×70 пикселей, преобразуйте его в мувиклип и назовите «hourHand».
Повторите этот процесс для минутной стрелки, но измените высоту на 110 пикселей. Не забудьте установить имя экземпляра на «minuteHand».
Выберите инструмент Oval Tool и создайте круг размером 26×26 пикселей, преобразуйте его в мувиклип и примените фильтр следующим образом:
Для секундной стрелки объедините круг размером 8×8 пикселей и прямоугольник размером 2×116 пикселей. Заполните их этим цветом # C90303.
Шаг 6: ActionScript
Создайте новый документ ActionScript и сохраните его как «Analog Clock.as».
Шаг 7: Обязательные классы
Эти классы нам понадобятся:
1
2
3
4
5
|
package
{
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
|
Шаг 8: Расширение класса
Мы собираемся использовать определенные методы и свойства Sprite, поэтому мы расширяем его с помощью класса Sprite.
1
2
|
public class AnalogClock extends Sprite
{
|
Шаг 9: переменные
Это переменные, которые мы будем использовать, объяснено в комментариях.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
/* A Date object used to get the time */
var date:Date = new Date();
/* Time Variables */
var hours:int = date.hours;
var minutes:* = date.minutes;
var seconds:* = date.seconds;
/* A Timer object that will handle the updates, executed every second */
var timer:Timer = new Timer(1000);
|
Шаг 10: Основная функция
Эта функция выполняется, когда класс загружен.
01
02
03
04
05
06
07
08
09
10
11
|
public function AnalogClock():void
{
/* This code will set the clock hands in the correct position using the Date object data */
hourHand.rotation = hours * 30 + (minutes * 0.5);//The Hour Hand rotates 30 degrees in 60 minutes, that’s 0.5 degrees per minute
minuteHand.rotation = minutes * 6;//The Minute rotates 6 degrees per minute, that’s 360 degrees in 60 minutes — an hour
secondHand.rotation = seconds * 6;//The Second Hand rotates 6 degrees per second, that is 360 degrees in 60 seconds — a minute
timer.addEventListener(TimerEvent.TIMER, updateClock);
timer.start();
}
|
Шаг 11: функция обновления
Это функция, которая обрабатывает часы. Это тот же код из первых функций, который выполняется таймером каждую секунду.
01
02
03
04
05
06
07
08
09
10
11
12
|
private function updateClock(e:TimerEvent):void
{
date = new Date();
hours = date.hours;
minutes = date.minutes;
seconds = date.seconds;
hourHand.rotation = hours * 30 + (minutes * 0.5);
minuteHand.rotation = minutes * 6;
secondHand.rotation = seconds * 6;
}
|
Шаг 12: Класс документа
Вернитесь к файлу .fla и в панели свойств добавьте «AnalogClock» в поле «Класс», чтобы сделать этот класс документа.
Шаг 13: экранное время для Flash
Screentime for Flash — это инструмент для создания заставок, он быстрый и простой в использовании. Вы можете получить пробную версию с сайта. Демо-версии полностью функциональны, за исключением того, что создаваемые ими хранители экрана истекают через неделю после их создания. В этом уроке я использую версию для Mac, поэтому заставка будет только для Mac.
Шаг 14: Заставка
Откройте Screentime и на вкладке Content выберите свой файл, нажав кнопку «…» и перейдя к swf. Введите имя для вашей заставки.
Оставьте вкладки «Свойства» и «Установщик» по умолчанию, а на вкладке «Опубликовать» укажите имя установщика, выберите нужные параметры и нажмите «Построить».
После завершения сборки откройте приложение установщика и нажмите «Установить». Теперь вы можете выбрать яркую заставку в Системных настройках.
Вывод
Вы просто узнаете, как легко конвертировать флэш-фильмы или приложения в заставки, изучить приложение Screentime и создать свое собственное!
Спасибо за прочтение 🙂