Создаем аналоговые часы




Главная > Уроки > Action script 3.0 > Создаем аналоговые часы

Создаем аналоговые часы

Автор/переводчик статьи: Команда сайта flashmaster.org.ua

Дата: 2012-08-25

Для содержимого этой страницы требуется более новая версия Adobe Flash Player.

Получить проигрыватель Adobe Flash Player


Урок по созданию аналоговых часов.
Код (объяснения в нем):

//Циферблат массив
var NumbersArr:Array=
[12,1,2,3,4,5,6,7,8,9,10,11];
//Массив для текстовых полей циферблата
var numbersTxts:Array=[0];

//Фон
var container:Sprite = new Sprite();
//Циферблат
var containerNumb:Sprite = new Sprite();
//Стрелки
var second:Sprite = new Sprite();
var minutes:Sprite = new Sprite();
var hours:Sprite = new Sprite();

second.graphics.lineStyle(1, 0x000000);
second.graphics.lineTo(0, -80);

minutes.graphics.lineStyle(2, 0x000000);
minutes.graphics.lineTo(0, -70);

hours.graphics.lineStyle(4, 0x000000);
hours.graphics.lineTo(0, -50);

container.x=90;
container.y=100;

container.graphics.beginFill(0x999999);
container.graphics.drawCircle(0, 0, 90);

addChild(container);
container.addChild(second);
container.addChild(minutes);
container.addChild(hours);
container.addChild(containerNumb);
containerNumb.y=-75+5;
containerNumb.x=-5;

//Создаем текстовые поля
var i:int=0;
while (i < NumbersArr.length) {
var txt:TextField = new

TextField();
txt.text=NumbersArr[i];
txt.width=15;
txt.height=20;
containerNumb.addChild(txt);
numbersTxts[i]=txt;
i++;
}
//Положения цифр на циферблате
numbersTxts[1].x=15+10+10;
numbersTxts[2].x=30+20+10;
numbersTxts[3].x=45+30;
numbersTxts[4].x=30+20+10;
numbersTxts[5].x=15+10+10;
numbersTxts[6].x=0;
numbersTxts[7].x=-15-10-10;
numbersTxts[8].x=-30-20-10;
numbersTxts[9].x=-45-30;
numbersTxts[10].x=-30-20-10;
numbersTxts[11].x=-15-10-10;

numbersTxts[0].y=-10;
numbersTxts[1].y=10-5;
numbersTxts[2].y=30-5;
numbersTxts[3].y=60;
numbersTxts[4].y=90+5;
numbersTxts[5].y=110+5;
numbersTxts[6].y=120+5;
numbersTxts[7].y=100+10+5;
numbersTxts[8].y=80+10+5;
numbersTxts[9].y=60;
numbersTxts[10].y=40-10-5;
numbersTxts[11].y=20-10-5;

//Разворачиваем стрелки относительно
времени
var my_date:Date = new Date();
second.rotation=my_date.seconds*6;
minutes.rotation=my_date.minutes*6;
hours.rotation=my_date.hours*30;

stage.addEventListener(Event.ENTER_FRAME, ef);
function ef(e:Event):void {
var my_date:Date = new Date();
second.rotation=my_date.seconds*6;
minutes.rotation =
(my_date.minutes+my_date.seconds/100)*6; hours.rotation =
(my_date.hours+my_date.minutes/100+my_date.seconds/10000)*30;

}

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


Понравился материал? Поделись с друзьями!





Подписаться на рассылку.

При перепечатки материалов ссылка на наш сайт обязательна!


 1