Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Не системные часы (http://www.flasher.ru/forum/showthread.php?t=75186)

z_dead 07.02.2006 11:30

Не системные часы
 
Как сделать часы, но чтобы они не работали от системных часов, а можно было задавать время самому? При том чтоб можно было ускорять или замедлять их... ??? Помогите, пожалуйста, очень нужно... :rolleyes:

Kinsler 07.02.2006 11:31

с помощью getTimer

z_dead 07.02.2006 12:04

А можно поконкретнее?

Kinsler 07.02.2006 12:19

набираешь в окне AS слово getTimer и жмешь F1

z_dead 07.02.2006 12:57

Еще есть мнения? может у кого есть исходники, чтоб можно было разобраться... или ссылка на урок? Просто нужно до сегодняшнего вечера сделать, мне так не разобраться... HELP!!! :eek:

MIX-er 07.02.2006 16:38

ну для веба можешь время из ПХП получить

MIX-er 07.02.2006 16:40

сори не верно вопрос понял сет интервал рулит

z_dead 07.02.2006 17:09

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

MIX-er 07.02.2006 17:32

setInterval()

z_dead 07.02.2006 18:24

А куда его вставлять то?

MIX-er 07.02.2006 21:52

читаем help там всё сказанно)

без подколови прочей фигни...

Homo Sapiens 08.02.2006 16:07

А в чём проблема, при задании переменной создаёшь новый объект Date, устанавливаешь время, и каждую секунду обновляешь значение часов. Считывая его из установленной даты...

kruasan 08.02.2006 18:02

Date генерирует данные на основе показаний системных часов, так что этот вариант отпадает (тема треда).
getTimer(), setInterval() - вещи хорошие, но ... в разных браузерах они пашут с разной скоростью. Попробуйте замерить реальный фпс с помощью геттаймера или сетинтервала: и эксплорер и файрфокс дадут вам одну и ту же цифру, хотя в файрфоксе воспроизведение заметно медленнее.
Так что такие часы будут не более чем красивым мультиком.

Король 08.02.2006 21:47

Цитата:

Сообщение от z_dead
А куда его вставлять то?

в зад

в код, куда ж ещё. Хелп открываем - видим пример - вставляем в панель Actions и разбираемся, как это работает

Homo Sapiens 08.02.2006 22:44

Цитата:

Сообщение от kruasan
Date генерирует данные на основе показаний системных часов, так что этот вариант отпадает (тема треда).

Ага, конечно:
Код:

var d:Date = new Date();
d.setMinutes(d.getMinutes() + 1);
 
var inter = setInterval(update, 1000);
 
function update():Void
{
 lblOutput.text = d.getMinutes() + ":" + d.getSeconds();
 updateAfterEvent();
}

Если не критична скорость обновления, можно вместо setInterval использовать onEnterFrame...

kruasan 09.02.2006 01:26

2 Homo Sapiens:
Возможно я не совсем верно понял вопрос, но мне показалось, что автор треда ищет решение, не зависящее от работы системных часов.

z_dead 09.02.2006 16:45

2 kruasan: правильно понял... только проблема так и осталась нераскрытой

__i 09.02.2006 18:51

Цитата:

Сообщение от kruasan
2 Homo Sapiens:
Возможно я не совсем верно понял вопрос, но мне показалось, что автор треда ищет решение, не зависящее от работы системных часов. А у тебя кругом getMinutes() и getSeconds().

Блин хочешь не хочешь а придеться использовать какую-то функцию времени. Предлогаю такой вариант:

есть К - коэфицент замедления/ускорения времени

новый объект Дата - задаешь время которое тебе нужно. MyTime
запоминаешь текущий момент времени (реальные часы!!!) oldReal
Вешаешь событие на ОнтерФрейм или сетИнтервал. в нем делаешь следующее:

newReal = получаешь текущее время.
dTime = Math.abs(oldReal - newReal)*K;
MyTime+=dTime; //- твое время меняеться с твоей скоростью
oldReal=newReal;

Все у тебя время течет в твоих сутках и с твоей скоростью!!!

__i 09.02.2006 18:55

кстате есть переписать строку
dTime = Math.abs(oldReal - newReal)*K;
так
dTime = (newReal - oldReal)*K;

то при коэфиценте K<0 у тебя время потечет в обратную сторону %))), типа машина времени %))

z_dead 09.02.2006 19:26

Спасибо. Разобрался! =)

KidsKilla 09.02.2006 19:56

б*я, народ, может прочитаете про Date?
он к системе имеет отношение если не задаёшь дату. во всём остальном никакой привязки к системным часам.
во всяком случае не больше чем setInterval или onEnterFrame.
getSeconds это лишь метод класса. такой же как если бы вы его написали ручками.

KidsKilla 09.02.2006 19:58

кстати, __i уже не в первый раз чепуху порешь, не зная что к чему, поостынь.

__i 09.02.2006 20:03

если такой умный, объясни в чем чепуха ? Тебе мой алгоритм в код перевести что ли?

KidsKilla 09.02.2006 20:37

Цитата:

Сообщение от __i
если такой умный, объясни в чем чепуха ? Тебе мой алгоритм в код перевести что ли?

умный. вообще я недосмотрел, каюсь, но "чепуха" есть.
в частности в том, что setInterval ни к чему. разве что анимацию на нём строить.
всё точно так же делается одними методами Date.

__i 09.02.2006 20:42

в частности в том, что setInterval ни к чему. разве что анимацию на нём строить.

так оно и есть, ну или можно это все облачить в функцию и вызывать ее тогда когда нужно узнать наше виртуальное время

KidsKilla 09.02.2006 20:46

окэй. мы друкдруга поняли =)


Часовой пояс GMT +4, время: 03:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.