Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > Хочу часы!!!


Автор: Plotter 21.10.2002, 23:04
Создал свой сайтик на флэшке, но в уголочке было бы неплохо поместить часики...какие угодно. ХОЧУ...но не могу... ПОМОГИТЕ!!!!

Автор: Prof. 29.10.2002, 07:19
Да, часики можно сделать без никаких проблем...

Ты сначала почитай хелп, пресс Ф1, и почмитай - это очень легко... ...я думаю, чтоон сам должен догадаться до этого, ну если у него не получиться, то задавай вопросы нам, более конкретные... ...Вот эти часы делаются с помощью трёхкадрового цикла :) :) :) :) :)

Автор: Prof. 30.10.2002, 04:10
ОК, не парься:
Рисушь 3 стрелки в отдельных мувиках (часы, минуты, секунды). Изменяешь центр вращения этих стрелок:)
Движениестрелок задай спомощью свойства _rotation. Экземпляры мувиков-стрелок назови min, sec, hour. Переменные, в которых хранится угол поворота, - соотв. m, s, h. За каждую секунду, секундная стрелка должна поворачиваться на 6 градусов.
Создай новый слой для сценариев, назови его actions. В первом кадре присвой первоначальные нулевые значения переменным s, m и h:
s=0;
m=0;
h=0;
mold=0;
(MOLD - переменная для сохраниения старого заначения.)

Во 2-м кадре делаешь:
aold = a;
a  =  getTimer();
while (getTimer()-a<1000);
s+=6;
if (s>=360) s=0;
sec._rotation=s;

mold=m;
if ((s==180||(s==0)) m+=3;
if (m>=360) m=0;
min._rotation=m;

if ((m%30==0)&&(m!=mold)) h+=2.5;
if (h>=360) h=0;
hour._rotation=h;

В 3-м кадре пишешь:
gotoAndPlay(2);

PS!
Должно заработать... ...если заработает - с тебя пиво бандеролью :)

Автор: Klin 7.11.2002, 00:52
Почему имменно при помощи Flasha?

Автор: Black_Joker 9.11.2002, 17:16
Напиши мне, я скину электронные часы, скачанные с флешера.рю.
Black_joker@hotbox.ru

Автор: Prof. 10.11.2002, 00:16
Хм....
Я думал ты хотел именно на Флэше:), тем более, как ты сказал, сайт у тебя на Флэше:)

Автор: Klin 29.12.2002, 16:38
Вот и ответ с http://www.flasher.ru/tutorial/viewtut.php?id=90.
Код
Ну, вот ты и захотел научиться делать часы =), ну что ж приступим…

Для начала создадим электронные часы. Первое что нам нужно сделать это текстовое поле. Затем надо вписать в него 6 нолей (по 2 ноля) это выглядит примерно вот так: 00 00 00 , теперь надо кликнуть правой кнопкой по этим получившемся 6 нолям и выбрать меню Panels>Text Options, или кликнуть по изображению буквы А в нижнем правом углу.

там появится окно под названием Character, нам надо выбрать под названием Text Options

и сделать всё как на рисунке (задать значение time в поле Variable, выбрать Dynamic Text, и Single line, кликнуть по этому […] изображению ) типа скобки закончились :-)

Ну подошла очередь вставить в первый кадр сценарий выглядит он вот так:

mydate = new Date();
sec = mydate.getSeconds();
min = mydate.getMinutes();
hour = mydate.getHours();
if (sec<10) {
sec = "0"+sec;
}
if (min<10) {
min = "0"+min;
}
if (hour<10) {
hour = "0"+hour;
}
time = hour add " " add min add " " add sec;

Пояснять всё я пожалуй не буду… :-( Но что-то объясню!!!

if (sec<10) {
sec = "0"+sec; //Это что бы ставился ноль до самого числа когда секунд меньше 10.
}
if (min<10) {
min = "0"+min; //Это что бы ставился ноль до самого числа когда минут меньше 10.
}
if (hour<10) {
hour = "0"+hour; //Это что бы ставился ноль до самого числа когда часов меньше 10.
}
time = hour add " " add min add " " add sec; //Это чтобы вместо наших нолей писалось время.

Сейчас надо добавить ещё один Frame (кадр) это чтобы наши часы обновлялись (нужно чтобы было 2 кадра)

Теперь надо нажать волшебные клавиши Ctrl+Enter и увидеть наше чудо сделанное общими силами!



Теперь приступим к созданию механических часов в смысле круглых…
Значит так, делаем сейчас циферблат (это кружочек, на котором будут находиться стрелочки, у него обязательно должен быть центр, на рисунке этот центр это зелёный маленький круг).

создадим символ клавишами Ctrl+F8, назовём его “минута”, нарисуем в нём минутную стрелку, чтобы центр символа был в конце стрелки (внизу) как на рисунке. :0)

Затем надо создать ещё 2 символа, это “час” и “секунда” также чтобы центр был внизу, и не забудь все стрелки сделать разных цветов. Теперь перенесём эти созданные символы на наш циферблат, так что бы их центры были на нашем зелёном кружочке как на рисунке

Подошло время выделить часовую стрелку и нажать Ctrl+Ш и напечатать hour в поле для ввода

затем надо выделить минутную стрелку и вписать min и наконец выделить секундную стрелку и вписать sec .
Ну, теперь выделяй первый кадр и вводи сценарий:
time = new Date();
s = time.getSeconds();
m = time.getMinutes();
h = time.getHours();
setProperty ("min", _rotation, m*6+s*0.1);
setProperty ("sec", _rotation, s*6);
setProperty ("hour", _rotation, h*30+m*0.5);
Но это я уж точно объяснять не буду сами, догадаетесь (шутка).
И вставляем ещё кадр (Frame) должно получиться 2 кадра это опять же для того что бы часы обновлялись.
Теперь надо нажать магические клавиши Ctrl+Enter и наслаждаться увиденным!

Но прежде чем сохранить, надо сказать про себя Да здравствует Waxbolik ! Если что-то не получилось, кидайте исходники на моё мыло globos@pochtamt.ru
Должно получиться!

Автор: MuToGeN 29.12.2002, 16:45
в примерах к Flash MX кстати тоже есть

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)