PDA

Просмотр полной версии : Часы на флеше КАК?


flazher
06.05.2008, 19:32
Подскажите люди добрые: как на флэшэ сварганить стрелочные часики
(Только штобы код начинался со следующего):
var lalala = new Date(); :confused:
З.Ы. Тока пажалуста не используйте в коде циклы - я их апсолюдно ни панимаю
:p

etc
06.05.2008, 19:50
flazher, а что у вас не получается в написании часов?

flazher
06.05.2008, 19:53
Просто запамятовал (всё время что-то забываю). Мне просто нужен код. К-О-Д!!!

DJ_Baton
06.05.2008, 19:54
смотри короче всё не так сложно, самый простой вариант:
в рут вбиваешь скрипт, мож не идеальный за то рабочий :) :
onEnterFrame = function () {
time = new Date();
sec_time = time.getSeconds(); //варим секунды
time_m = time.getMinutes(); //варим минуты
time_th = time.getHours(); //варим часы
sec = sec_time*6;
min = time_m*6;
th = time_th*30+min/12;
if (sec_time<10) {
sec_time = "0"+sec_time;
}
if (time_th<10) {
time_th = "0"+time_th;
}
if (time_m<10) {
time_m = "0"+time_m;
}
_root.clock.seconds.gotoAndStop(_root.sec_time);
if (_root.sec_time<1) {
_root.clock.seconds.gotoAndStop(60);
}
_root.clock.minutes.gotoAndStop(_root.time_m);
_root.clock.hours.gotoAndStop(_root.time_th);
if (_root.time_th<1) {
_root.clock.hours.gotoAndStop(12);
}
if (_root.time_th>12) {
_root.clock.hours.gotoAndStop((_root.time_th)-12);
}

};

ну а дальше тупо создаёшь циферблат под instance именем clock
в нём 3 мувиклипа с именами:
seconds
hours
minutes
в минутах стрелку крутишь твином с первой минуты до значения циферблата 12 часов (60 кадров), в каждом кадре паузу ставишь
секунды, те же тапки, только новый мувик и другая стрелка
в часах почти то же самое но кадров 12 и начинается с 1-го часа

з.ы. не забудь установить центр вращения на конце стрелки, по умолчанию он установлен посередине

з.з.ы. там в моём скрипте несколько строк для возможности реализовать параллельно электронные часики, это там где "0" прибавляется

etc
06.05.2008, 19:54
Просто запамятовал (всё время что-то забываю). Мне просто нужен код. К-О-Д!!!

Откройте хелп по классу Date и увидите все необходимые вам методы для написания часов.

flazher
06.05.2008, 20:00
DJ Baton: Вот спасибо, теперь понял.
З.Ы.А также благодарю за отсутствие циклов ))).

Жень Шень
06.05.2008, 20:23
Вариант (по просьбе в моем топике):rtfm:

DesIra
23.05.2008, 15:27
плохо в этом примере то, что при времени например "2:59" стрелка часовая будет на 2. а в 3:00 перескочит сразу на 3...

lexa2000lexa
23.05.2008, 16:10
если немного переделать то будет нормуль.
onEnterFrame = function() {
var date = new Date();
var sec = date.getSeconds();
var min = date.getMinutes();
var hour = date.getHours();
clock.sec_arrow._rotation = sec*6;
clock.min_arrow._rotation = min*6+sec*0.1;
clock.hour_arrow._rotation = hour*30+min*0.5;
};
будет прям как механика)))

DesIra
23.05.2008, 16:24
ну или так =) :
onEnterFrame = function() {
var date = new Date();
var sec = date.getSeconds();
var min = date.getMinutes();
var hour = date.getHours();
clock.sec_arrow._rotation = sec*6;
clock.min_arrow._rotation = min*6;
clock.hour_arrow._rotation = hour*30 + min / 2;
};
что по сути одно и то же

flazher
24.05.2008, 11:41
Я и использовал rotation, но за совет спасибо

Svegiy
19.11.2008, 22:02
А мне вот необходимо создать шаблончик на цифровые часики на AS1.1. ПомОжете?
Причем, скриптов нашел немало, а вот освоить МакроФлешПрофи пока не смог.. Проблемы в понимании, что в каком порядке и КАК создавать. Где скрипты пишутся - ясно. Слои, динамический шрифт - все понятно. А не пашет!
И самое интересное - в чем контролировать?? Плеер8, в комплекте который, не отображает данные часы в рабочем (с идущем временем) режиме.

джонатан
20.11.2008, 01:58
А что такое МакроФлешПрофи?
Блин, я ваш текст совершенно не понял! О чем вы? AS 1.1 это всмысле AS 1.0?

Svegiy
20.11.2008, 11:41
Наверное и AS 1.0 подойдет. Я не разбираюсь ещё в таких тонкостях. А может и не подойдет. Похоже, что мне нужен шаблон в FL 1.1 AS... Вот скрипты:// Action script...

// [Action in Frame 1]
tellTarget("/")
{
if (iBufDay != FLCmd("GetDateDay"))
{
iNowYear = FLCmd("GetDateYear");
iNowMonth = FLCmd("GetDateMonth");
iNowDay = FLCmd("GetDateDay");
iNowWDay = FLCmd("GetDateWeekDay");
iBufDay = iNowDay;
/:$X3 = iNowWDay;
switch (eval("/:$X3"))
{
case 0:
{
txtWDay = "Sun";
break;
}
case 1:
{
txtWDay = "Mon";
break;
}
case 2:
{
txtWDay = "Tue";
break;
}
case 3:
{
txtWDay = "Wed";
break;
}
case 4:
{
txtWDay = "Thr";
break;
}
case 5:
{
txtWDay = "Fri";
break;
}
case 6:
{
txtWDay = "Sat";
break;
}
} // End of switch
txtDate = iNowYear add "-" add substring(00 add iNowMonth, length(iNowMonth) + 1, 2) add "-" add substring(00 add iNowDay, length(iNowDay) + 1, 2);
} // end if
if (iBufSec != FLCmd("GetTimeSeconds"))
{
iNowHour = FLCmd("GetTimeHours");
iNowMinute = FLCmd("GetTimeMinutes");
iNowSec = FLCmd("GetTimeSeconds");
iBufSec = iNowSec;
txtSec = substring(00 add iNowSec, length(iNowSec) + 1, 2);
txtTime = substring(00 add iNowHour, length(iNowHour) + 1, 2) add ":" add substring(00 add iNowMinute, length(iNowMinute) + 1, 2);
} // end if
tellTarget("")
{
} // End of TellTarget
} // End of TellTarget

// [Action in Frame 2]
gotoAndPlay(1);


Добавлено через 4 минуты
Мне безразлично, на одном слое расположить три окна с динамическим текстом или разнести их на три слоя. Мне надо понять, что я не так делаю. В AS 2.0 я заставил часы работать. Для создания стрелочных часов на AS 1.1` есть великолепный пошаговый урок. А вот с этим - проблемы...


http://***********/9168221

Добавлено через 9 часов 32 минуты
http://***********/9176860
Вот исправил некоторые ошибки... Но всё равно, что то не так..
КТО НИТЬ ПОМОЖЕТ???

Svegiy
24.11.2008, 09:46
А вокруг...
И тишина!..

iNils
24.11.2008, 11:27
И только модеры плюсы раздают за подъем темы.

Добавлено через 2 минуты
А у вас еще оказывается и код декомпилированный...