Здравствуйте, гость ( Вход | Регистрация )

> Подскажите, как сделать Таймер
Assa
сообщение 26.10.2006 - 12:07
Сообщение #1


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Подскажите, пожалуйся, как во флеш сделать таймер. Так чтобы шел отсчет времени: секунды, минуты и часы.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
2 страниц V   1 2 >  
Открыть новую тему
Ответов (1 - 19)
MustLive
сообщение 26.10.2006 - 17:00
Сообщение #2


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4957
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Assa

Чтобы сделать во флеше таймер нужно использовать объект Date.

Код
clock = new Date();
hour = clock.getHours();
minute = clock.getMinutes();
second = clock.getSeconds();


Про создание часов во флеше я писал во втором номере нашей рассылки в статье Создание часов с цифровым циферблатом во Flash.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Assa
сообщение 27.10.2006 - 16:03
Сообщение #3


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Я вставил, этот код в клип, но к сожалению ничего не вышло sad.gif .Может сделал что не так
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tiHo
сообщение 27.10.2006 - 16:29
Сообщение #4


C:\>
*****

Группа: Супермодераторы
Сообщений: 1604
Регистрация: 10.04.2006
Из: Млечный Путь, 3-я планета от Солнца, Россия, Московская область, Жуковский.
Пользователь №: 293



Конечно же ничего не будет smile.gif а что ты ожидал(а) увидеть? ты только обозначил(а) переменные hour minute и second, и присвоил(а) им значения от класса Date.

теперь покажу как из етого сделать хотябы не таймер а часы:

создай динамическое текстовое поле, и назови его vivod

после чего напиши код(на 1-ый кадр) :

Код
_root.onEnterFrame = function ()
{
    var time:Date = new Date();
    var second:Number = time.getSeconds();
    var minute:Number = time.getMinutes();
    var hour:Number = time.getHours();
    vivod.text = hour + ":" + minute + "." + second;
};


Сообщение отредактировал tiHo - 27.10.2006 - 16:31


--------------------
Вопрос-ответ для flash-разработчиков
С тех пор, как за Теорию Относительности принялись математики, я ее сам больше не понимаю. (с) Эйнштейн А.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 27.10.2006 - 16:48
Сообщение #5


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4957
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
Я вставил, этот код в клип, но к сожалению ничего не вышло sad.gif Может сделал что не так

Assa

Чтобы всё заработало, в случае если что-то непонятно, нужно внимательно читать нашу рассылку, где во втором номере, как я уже сказал, я детально описал создание часов во флеше (для того я и сослался на второй номер). На форуме я также ранее уже эту тему рассматривал.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Assa
сообщение 27.10.2006 - 17:36
Сообщение #6


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Пошел читать ссылку, может пойму, а то никак не доходит smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 27.10.2006 - 19:29
Сообщение #7


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4957
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Давай, Assa, почитай wink.gif

В рассылке я детально описал процесс создания часов с цифровым циферблатом во флеш.

Также я об этой теме писал на форуме: /forum/index.php?showto...dpost&p=836


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Assa
сообщение 28.10.2006 - 12:07
Сообщение #8


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Часы я делать умею, ссылку читал. Единственное что я не понял это чем ваш код отличается от вот этого например:
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;
И как делать отсчет времени (то что мне нужно) я так и не понял
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 28.10.2006 - 14:52
Сообщение #9


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4957
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
Часы я делать умею, ссылку читал.

Это хорошо. Главное чтобы от информации польза была.

Цитата
Единственное что я не понял это чем ваш код отличается от вот этого например:

Особо ничем не отличается, формирования вывода значения текущего времени - это индивидуальное дело каждого разработчика (т.е. эти отличия не существенны). Лишь обращу внимание, как это было сделано на форуме и в рассылке, а также tiHo в этой теме, что нужно код вызова объекта Date занести в блок onEnterFrame. Чтобы время обновлялось с частой ролика (fps проигрывания флешки).

Цитата
И как делать отсчет времени (то что мне нужно) я так и не понял

Assa, под Таймером могут подразумеваться разные вещи - как "Часы", так и "Секундомер". И это различные понятия (у них различные задачи, и соотвественно их реализация).

О часах я уже высказался. С таймером (секундомером) разбирайся. Ничего сложного в этом нет.

Секундомер можно сделать на основе объекта Date: нужно будет в цикле onEnterFrame сравнивать текущее и предыдущее значение времени, и производить необходимые вычисления - секундомер "отнимает" (если обратный отсчёт) или "добавляет" (если с нуля считает) секунды. Можна сделать и по другому - с ипользованием setInterval (этот вариант предпочтителен - я сам именно им пользуюсь для создания секундомеров).


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Assa
сообщение 5.11.2006 - 20:41
Сообщение #10


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Научи меня, плиззззззз, так сказать в реалтайме, в icq например. smile.gif Нужно очень, А?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 5.11.2006 - 23:47
Сообщение #11


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4957
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Assa

Для обучения в асе нету времени smile.gif.

Цитата
Научи меня, плиззззззз

Ну а относительно создания секундоменров я вроде достаточно описал возможные подходы. Как с использованием Date, так и setInterval.

Ну и хелп всегда можно почитать.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Assa
сообщение 6.11.2006 - 15:16
Сообщение #12


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Нельзя. Знания английского языка не позволяют. Кстати, есть полностью "русский" флеш?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rohan
сообщение 6.11.2006 - 15:26
Сообщение #13


Активный участник
***

Группа: Пользователь
Сообщений: 300
Регистрация: 23.04.2006
Из: Днепропетровск, Украина
Пользователь №: 317



Код
var numOfSeconds:Number = 10;
var finalPoint:Number = (new Date()).getTime() + 1000*numOfSeconds;
_root.onEnterFrame = function(){
    var currentTime:Number = (new Date()).getTime();
    trace(Math.round((finalPoint-currentTime)/1000));
    if(finalPoint-currentTime<=0){
        trace("BOOM!");
        delete this.onEnterFrame;
    }
}


--------------------
прочь из моей головы
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Assa
сообщение 6.11.2006 - 16:08
Сообщение #14


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Я сделал текстовое поле - 00:00:00. Туда вставил код:
Цитата
Код
var numOfSeconds:Number = 10;
var finalPoint:Number = (new Date()).getTime() + 1000*numOfSeconds;
_root.onEnterFrame = function(){
var currentTime:Number = (new Date()).getTime();
trace(Math.round((finalPoint-currentTime)/1000));
if(finalPoint-currentTime<=0){
trace("BOOM!");
delete this.onEnterFrame;
}
}

Затем сделал второй кадр (как в электронных часах), но ничего не из этого не получилось. Может еще что нужно было написать?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 6.11.2006 - 16:52
Сообщение #15


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4957
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Assa

Код Rohan-а вставь в кадр (первый) и запусти. И всё заработает.

Это для флеш 7/8, если у тебя флеш 6/мх (как на том компе за которым я сейчас сижу), то код немного видоизменится для корректной работы:
Код
var numOfSeconds = 10;
var finalPoint = (new Date()).getTime() + 1000*numOfSeconds;
_root.onEnterFrame = function(){
    var currentTime = (new Date()).getTime();
    trace(Math.round((finalPoint-currentTime)/1000));
    if(finalPoint-currentTime<=0){
        trace("BOOM!");
        delete this.onEnterFrame;
    }
}


Цитата
Я сделал текстовое поле - 00:00:00. Туда вставил код:

Для отображения таймера не в трейсе, а в текстовой надписи сошлись на текстовую надписm в коде. Вместо trace(Math.round((finalPoint-currentTime)/1000)) - _root.textfield.text=Math.round((finalPoint-currentTime)/1000). И вместо trace("BOOM!") сделай нужное действие.

Данный таймер опрашивается с частотой (fps) флеш ролика.

Цитата
Кстати, есть полностью "русский" флеш?

Да есть перевод на русский. Как хелпа и акшон скрипт справочника, так и ливдоков.

Данная тема уже неоднократно обсуждалась. В том числе я давал ссылки на сайты откуда можно скачать документацию на русском. Поиск по форуму (и поиск в Гугле) всегда помогут.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Assa
сообщение 6.11.2006 - 17:52
Сообщение #16


Новичок
*

Группа: Новичок
Сообщений: 8
Регистрация: 26.10.2006
Пользователь №: 1195



Цитата
И вместо trace("BOOM!") сделай нужное действие.

А какое там действие "нужное". И еще, можно объяснить как это все работает. Я вот тут код с часами разбирал:
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;
Так там можно убрать минуты, секунды и часы. Например сделать отсчет времени от 0 до 60 секунд. Также и минуты и часы. А нельзя как-то сделать так чтобы шел отсчет: секунды, часы, минуты, чтобы только было видно все три поля, а за основу взять этот кад
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 6.11.2006 - 20:20
Сообщение #17


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4957
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
А какое там действие "нужное".

Assa, здесь уж ты сам должен решить, какое действие нужное.

В примере Рохана, появляется сообщение "BOOM!" (причём в трейсе, поэтому в плеере/плагине сообщения ты не увидешь, только в редакторе).

Ты можешь установить вызов отдельной функции, появление текстового сообщения или объекта, переход на нужный кадр и т.д.

Цитата
И еще, можно объяснить как это все работает.

Разбирайся, здесь ничего сложного.

Цитата
А нельзя как-то сделать так чтобы шел отсчет: секунды, часы, минуты, чтобы только было видно все три поля

Всё можно. Как я уже сказал в коде ты должен сослаться на текстовые поля, которые ты разместишь на сцене (секунды, минуты, часы). И соответственно пойдёт отсчёт, по заданному алгоритму (секунды Рохан уже реализовал, используй их и самостоятельно реализуй минуты и часы).

P.S.

Я смотрю Rohan большой поклонник Math.round. Об этом мы уже с ним говорили ранее wink.gif. Math.round - это для юзеров, профессионалы используют Math.floor.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Pixel
сообщение 10.12.2006 - 19:59
Сообщение #18


Новичок
*

Группа: Новичок
Сообщений: 6
Регистрация: 10.12.2006
Пользователь №: 1872



Здравствуйте, помогите сделать отсчёт времени для тест программы, вроде скрипт на языке крутиться, а додумать не могу...допустим дано время 01:30:00 час тридцать минут и идёт отсчёт начиная с секунд...и так до истечения часа...помогите!!! выложите скрипт или хотябы направьте в нужное направление.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tiHo
сообщение 10.12.2006 - 21:03
Сообщение #19


C:\>
*****

Группа: Супермодераторы
Сообщений: 1604
Регистрация: 10.04.2006
Из: Млечный Путь, 3-я планета от Солнца, Россия, Московская область, Жуковский.
Пользователь №: 293



[attachment=48:attachment]
/forum/index.php?act=At...=post&id=48

это конечно самый запутанный код таймера, ибо моя логика неподвластна никаму(и даже мне) laugh.gif

Сообщение отредактировал tiHo - 10.12.2006 - 21:04


--------------------
Вопрос-ответ для flash-разработчиков
С тех пор, как за Теорию Относительности принялись математики, я ее сам больше не понимаю. (с) Эйнштейн А.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Pixel
сообщение 10.12.2006 - 22:00
Сообщение #20


Новичок
*

Группа: Новичок
Сообщений: 6
Регистрация: 10.12.2006
Пользователь №: 1872



я почему то не могу пройти по этой ссылке( ....может тут выложишь
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

2 страниц V   1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 1.08.2014 - 04:33