Adobe - Flash - Platform Приклад дати та часу простий аналоговий годинник

Flash Player 9 і пізніших версій, Adobe AIR 1.0 та пізніших версій

Приклад простих аналогових годинників ілюструє ці дві концепції дати та часу:

отримання поточної дати та часу та отримання значень для годин, хвилин та секунд;

використання класу Timer для завдання ритму додатку.

Отримати файли програми для цього прикладу можна на сторінці www.adobe.com/go/learn_programmingAS3samples_flash_ua. Файли програми SimpleClock знаходяться у папці Samples/SimpleClock. Програма складається з таких файлів.

Основний файл програми Flash (FLA) або Flex (MXML).

Основний файл програми.

Малює круглий циферблат із годинниковою, хвилинною та секундною стрілками.

Визначення класу SimpleClock

Приклад з годинником дуже простий, але корисно вміти грамотно працювати і з простими програмами, щоб у майбутньому розуміти, як їх можна ускладнити та вдосконалити. У додатку SimpleClock використовується клас SimpleClock для обробки завдань запуску та відліку часу, а також ще один клас AnalogClockFace для відображення часу.

Нижче наведено код для визначення та ініціалізації класу SimpleClock (зверніть увагу, що у варіанті Flash клас SimpleClock є розширенням класу Sprite):

Цей клас має дві важливі властивості:

властивість face, що є екземпляром класу AnalogClockFace;

властивість ticker є екземпляром класу Timer.

Клас SimpleClock використовує стандартний конструктор. Метод initClock() відповідає за встановлення: створює циферблат та запускає екземпляр Timer.

Створення циферблату

У наступних рядках коду SimpleClock створюється циферблат для відображення часу:

Розмір циферблата можна передати у методі initClock() . Якщо значення faceSize не передається, розмір за замовчуванням складе 200 пікселів.

Потім програма ініціалізує циферблат і додає його до списку відображення за допомогою методу addChild() , що успадковується від класу DisplayObjectContainer. Далі викликається метод AnalogClockFace.draw(), який один раз відображає циферблат із поточним часом.

Запуск таймера

Після створення циферблату метод initClock() налаштовує таймер:

Спочатку цей метод створює екземпляр Timer, який відправлятиме подію кожну секунду (кожні 1000 мілісекунд). Оскільки конструктору Timer() не передається другий параметр repeatCount, Timer багаторазово повторюватиметься.

Метод SimpleClock.onTick() буде виконуватися раз на секунду при отриманні події timer :

Метод AnalogClockFace.draw() просто малює циферблат та стрілки.

Відображення поточного часу

Переважна частина коду в класі AnalogClockFace відповідає за створення на циферблаті елементів, що відображаються. При ініціалізації класу AnalogClockFace малюється коло, всередині нього поряд з кожною міткою годинника пишеться число, а потім створюються три об'єкти Shape: один для годинної стрілки, один для хвилинної і один для секундної.

Після запуску програми SimpleClock кожну секунду викликається метод AnalogClockFace.draw() , як показано нижче:

Цей метод зберігає значення поточного часу в змінній, щоб час не змінився під час відтворення стрілок годинника. Потім викликається метод showTime() , який відображає стрілки годинника, як показано нижче:

Спочатку цей метод отримує значення годин, хвилин і секунд поточного часу. Потім ці значення використовуються для розрахунку кута кожної зі стрілок. Оскільки секундна стрілкаробить повний оберт за 60 секунд, її кут кожну секунду змінюється на 6 градусів (360/60). Хвилинна стрілка щохвилини зміщується на однакову кількість градусів.

Годинна стрілка теж змінює своє становище щохвилини, щоб відбивати хід часу. Щогодини вона зміщується на 30 градусів (360/12), а кожну хвилину - на півградуса (ділимо 30 градусів на 60 хвилин).

На пости, що розміщуються в Twitter™ та Facebook, умови Creative Commons не поширюються.