Итак, в этом уроке мы научимся создавать уже ставшие культовыми часы. Первыми начнём делать электронные часы. Для этого нам необходимо:

Создать два кадра - один ключевой, другой - дополнительный. Затем надо создать 4 текстовых поля с названиями /:time (здесь будут отображаться часы и минуты), /:clocksecs (для отображения секунд), /:datedisplay (для отображения даты) и поле с названием /:indicator - здесь будет описано состояние часов - день или вечер (AM - After morning, PM - Past Morning).


Разместите всё это, как Вам угодно. Теперь выделите все поля и конвертируёте их в MC (Ролик) - нажатием ‹F8› (это делается для того, чтобы удобнее было редактировать поля, и они компактно размещались в одном МС).


Теперь приступим к части ActionScript. Создаём новый слой с двумя ключевыми кадрами. В первом кадре пишем такой скрипт:

mySecs = new Date();// новое значение метода Дата - секунды
secs = mySecs.getSeconds();// добавлЯем секунды
myMins = new Date();// новое значение метода Дата - минуты
mins = myMins.getMinutes();// добавлЯем минуты
myHrs = new Date();// новое значение метода Дата - часы
hrs = myHrs.getHours();// добавлЯем часы
myYr = new Date();// новое значение метода Дата - год
yr = myYr.getFullYear();// добавлЯем год
myMon = new Date();// новое значение метода Дата - месЯц
mon = (myMon.getMonth())+1;// добавлЯем месЯц
myDate = new Date();// новое значение метода Дата - число
day = myDate.getDate();// добавлЯем число

Разберёмся в скрипте. Объект Date позволяет получить дату и время по Гринвичу (глобальные) и текущие (системные), где запущен Flash Player. Далее, метод newDate назначает новые значения объекта Date. Методы getSeconds(), getMinutes(), getHours(), getFullYear(), getMonth() и getDate() - возвращают секунды, минуты, часы, год, месяц и день месяца указанного объекта Date согласно системному времени.


Теперь во втором кадре добавим такой скрипт:

seconds = int(mytime/1000);
minutes = int((secs+seconds)/60);
hours = int((minutes+mins)/60);
clocksecs = seconds+secs;
clockmins = minutes+mins;
clockhours = hours+hrs;
if (clockhours>12) {
clockhours = clockhours-12;
indicator = "PM";
} else {
(indicator="AM");
}
if (clocksecs<10) {
clocksecs = "0"+clocksecs;
}
if (clockmins<10) {
clockmins = "0"+clockmins;
}
time = clockhours+":"+clockmins;
datedisplay = day+"/"+mon+"/"+yr;

Здесь мы приводим в действие механизм часов и запускаем в ход действия, заданные в первом кадре. Думаю, всё предельно понятно, посмотрите на мой оформленный пример:





Теперь сделаем механические часы - со стрелками. Что для этого надо:

Создать три кадра - один ключевой, другой - дополнительный. А вот теперь уже создаём не текстовые поля, а стрелки (минутная, секундная и часовая). Часовая будет самая короткая, минутная - подлиннее, а секундная - самая большая (см.пример снизу). Итак, обзовём эти стрелки так: секундная - second_hand, минутная - minute_hand и часовая - hour_hand. Кроме того, под нашими стрелками будет тень. Экземпляры теней стрелок: секундная - second_shadow, минутная - minute_shadow и часовая - hour_shadow, причём середина стрелок должна находится на конце линий. Сместите линию так, чтобы её конец был в центре МС.
Теперь разместим эти символы точно по середини круга - циферблата. Они должны быть расположены так, чтобы их середина был на одном уровне. Думаю, создать деления и нарисовать цифры к циферблату не составит труда.
Переходим к скрипту. Первый кадр - вводим значения:

mySecs = new Date();
secs = mySecs.getSeconds();

myMins = new Date();
mins = myMins.getMinutes();

myHrs = new Date();
hrs = myHrs.getHours();

Второй кадр - главный - здесь мы задаём действия, которые следует выполнить стрелкам:

mytime = getTimer();

seconds = mytime / 1000;
minutes = (secs + seconds) / 60;
hours = (minutes + mins) / 60;

clocksecs = seconds + secs;
clockmins = minutes + mins;
clockhours = hours + hrs;

// действиЯ, поворачивающие стрелки
setProperty ("second_hand", _rotation, ((clocksecs/60)*360));
setProperty ("second_shadow", _rotation, ((clocksecs/60)*360));

setProperty ("minute_hand", _rotation, ((clockmins/60)*360));
setProperty ("minute_shadow", _rotation, ((clockmins/60)*360));

setProperty ("hour_hand", _rotation, ((clockhours/12)*360));
setProperty ("hour_shadow", _rotation, ((clockhours/12)*360));

А в третьем кадре мы пишем gotoAndPlay (2);, чтобы каждый раз возвращатся на 2 кадр и выполнять скрипт.

===========================
типа пример )))