Форум 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)

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

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


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

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