Статьи

Создайте аналоговую заставку часов с Screentime для Flash

В этом уроке я покажу вам, как создать стильные аналоговые часы с использованием ActionScript 3.0. Мы будем использовать полученный SWF-фильм с Screentime для Flash, чтобы создать полнофункциональную заставку. Время повеселиться




Используя объект Date и его свойства, мы получим день, часы, минуты и секунды и будем использовать простую математику для отображения полученных данных в аналоговых часах. Обновления будут обрабатываться таймером .

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

Откройте Flash и создайте новый файл Flash (ActionScript 3).

аналоговые вспышки

Установите размер сцены на 640×400 и добавьте серый линейный фон (#DBDBDD, # B3B2B7). Screentime автоматически масштабирует фильм до полного экрана, поэтому нам не нужно устанавливать сцену в полном разрешении.

аналоговые вспышки

Мы начнем с создания фона часов.

Выберите инструмент Oval Tool (O) и нарисуйте круг размером 250×250 px и добавьте черный линейный фон (# 313131, # 000000). Используйте инструмент Gradient Transform Tool (F), чтобы повернуть градиент, чтобы он выглядел следующим образом:

аналоговые вспышки

Создайте еще один круг, на этот раз 248×248, с этим линейным градиентом (# 595959, # 000000). Опять же, используйте Gradient Transform Tool, чтобы вращать и регулировать градиент.

аналоговые вспышки

Теперь давайте добавим цифры к нашим часам.

Выберите инструмент Text Tool (T), выберите шрифт по вашему выбору и подходящий размер для часов. Я использовал Myriad Pro Regular, 22 Pt, #DDDDDD.

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

По горизонтали:

аналоговые вспышки

По вертикали:

аналоговые вспышки

Время создавать стрелки часов.

Выберите инструмент Poly Star (нажмите и удерживайте кнопку «Прямоугольник»), затем на панели свойств нажмите кнопку «Параметры» в разделе «Настройки инструмента». Измените количество сторон на 3.

аналоговые вспышки

Создайте белый треугольник размером 20×70 пикселей, преобразуйте его в мувиклип и назовите «hourHand».

аналоговые вспышки

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

аналоговые вспышки

Выберите инструмент Oval Tool и создайте круг размером 26×26 пикселей, преобразуйте его в мувиклип и примените фильтр следующим образом:

аналоговые вспышки

Для секундной стрелки объедините круг размером 8×8 пикселей и прямоугольник размером 2×116 пикселей. Заполните их этим цветом # C90303.

аналоговые вспышки

Создайте новый документ ActionScript и сохраните его как «Analog Clock.as».

аналоговые вспышки

Эти классы нам понадобятся:

1
2
3
4
5
package
{
    import flash.display.Sprite;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

Мы собираемся использовать определенные методы и свойства Sprite, поэтому мы расширяем его с помощью класса Sprite.

1
2
public class AnalogClock extends Sprite
{

Это переменные, которые мы будем использовать, объяснено в комментариях.

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);

Эта функция выполняется, когда класс загружен.

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();
}

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

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;
}

Вернитесь к файлу .fla и в панели свойств добавьте «AnalogClock» в поле «Класс», чтобы сделать этот класс документа.

аналоговые вспышки

Screentime for Flash — это инструмент для создания заставок, он быстрый и простой в использовании. Вы можете получить пробную версию с сайта. Демо-версии полностью функциональны, за исключением того, что создаваемые ими хранители экрана истекают через неделю после их создания. В этом уроке я использую версию для Mac, поэтому заставка будет только для Mac.

Откройте Screentime и на вкладке Content выберите свой файл, нажав кнопку «…» и перейдя к swf. Введите имя для вашей заставки.

аналоговые вспышки

Оставьте вкладки «Свойства» и «Установщик» по умолчанию, а на вкладке «Опубликовать» укажите имя установщика, выберите нужные параметры и нажмите «Построить».

аналоговые вспышки

После завершения сборки откройте приложение установщика и нажмите «Установить». Теперь вы можете выбрать яркую заставку в Системных настройках.

Вы просто узнаете, как легко конвертировать флэш-фильмы или приложения в заставки, изучить приложение Screentime и создать свое собственное!

Спасибо за прочтение 🙂