Класс для генерации «механических» flash-часиков на ActionScript 3.0

Немного изменил ранее созданный пример с механическими флеш-часиками на ActionScript 3.0 и получил класс ClockOffline. Класс совершенно простенький.

Код ActionScript 3.0:

/* @edapskov v 1.0 */ package { /* подключаем необходимые классы */ import flash.display.Sprite; import flash.utils.Timer; import flash.events.TimerEvent; /* тело класса */ public class ClockOffline extends Sprite { /* константы */ private const _TIMER:uint = 1000; /* переменные */ private var _clockH:Sprite; private var _clockM:Sprite; private var _clockS:Sprite; /* функция-конструктор */ public function ClockOffline(r:uint = 100,fill:uint = 0xffffff,line:uint = 0x333333):void { /* спрайт-контейнер */ var cont:Sprite = new Sprite(); addChild(cont); /* табло часов */ var tabl:Sprite = new Sprite(); cont.addChild(tabl); tabl.graphics.lineStyle(3,line,1); tabl.graphics.beginFill(fill,1); tabl.graphics.drawCircle(0,0,r); tabl.x = r; tabl.y = r; /* часовая стрелка */ _clockH = new Sprite(); tabl.addChild(_clockH); _clockH.graphics.lineStyle(3,line,1); _clockH.graphics.moveTo(0,5); _clockH.graphics.lineTo(0,-(r/6*3)); /* минутная стрелка */ _clockM = new Sprite(); tabl.addChild(_clockM); _clockM.graphics.lineStyle(2,line,1); _clockM.graphics.moveTo(0,5); _clockM.graphics.lineTo(0,-(r/6*4)); /* секундная стрелка */ _clockS = new Sprite(); tabl.addChild(_clockS); _clockS.graphics.lineStyle(1,line,1); _clockS.graphics.moveTo(0,5); _clockS.graphics.lineTo(0,-(r/6*5)); /* перерисовываем наши часы по таймеру */ var timer:Timer = new Timer(_TIMER); timer.addEventListener(TimerEvent.TIMER, onTimer); timer.start(); /* устанавливаем время на часах */ tic(); } /* функция, срабатывающая по таймеру */ private function onTimer(event:TimerEvent):void { tic(); } /* функция, перерисовывающая наши часики */ private function tic():void { var d:Date = new Date(); var h:Number = d.getHours(); var m:Number = d.getMinutes(); var s:Number = d.getSeconds(); if (h>12) { h -= 12; } var hAngle:Number = (360*h/12)+(0.5*m); var mAngle:Number = 360 * m / 60; var sAngle:Number = 360 * s / 60; _clockH.rotation = hAngle; _clockM.rotation = mAngle; _clockS.rotation = sAngle; } } }

Использовать данный класс тоже невероятно просто. Всего пара строчек кода.

Код ActionScript 3.0:

/* импортируем класс */ import ClockOffline; /* создаём экземпляр класса ClockOffline */ var clock:ClockOffline = new ClockOffline(); /* добавляем в список отображения */ addChild(clock);

Результат будет следующим:

Загрузить Adobe Flash Player

В качестве параметров классу можно передать следующие значения:

- радиус циферблата (по умолчанию стоит 100 px);

- цвет заливки циферблата (по умолчанию стоит белая заливка);

- цвет стрелок и обводки циферблата (по умолчанию стоит тёмно-серый цвет - 0x333333).

Для примера создадим часы с радиусом 150 px, красной обводкой/стрелками (0xff0000) и светло-серой заливкой (0xcccccc).

Код ActionScript 3.0:

/* импортируем класс */ import ClockOffline; /* создаём экземпляр класса ClockOffline */ var clock:ClockOffline = new ClockOffline(150,0xcccccc,0xff0000); /* добавляем в список отображения */ addChild(clock);

Результат будет следующим:

Загрузить Adobe Flash Player

Исходник под Adobe Flash CS5.5 и класс ClockOffline скачать можно здесь.

Автор: admin

Дата добавления: 2011-11-25

Просмотров: 1765

Рейтинг поста: +5-

Правила перепечатки

Социальные закладки:
Комментарии:
К данной заметке комментариев пока нет. Ваш комментарий может стать первым.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика