Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   часы (http://www.flasher.ru/forum/showthread.php?t=117748)

borborich 05.11.2008 16:18

часы
 
У меня в игре сделан таймер без визуального представления, как сделать часы чтоб они делали полный оборот равный 3м минутам?

skald 05.11.2008 17:10

вариантов масса ... что конкретно не получается ... и где это расти должно??

Division 05.11.2008 17:52

borborich, да, что конкретно не получается? Вообще это просто. Если оборот часов задаётся в градусах, то его можно найти так:
Код:

angle = time_in_minutes/3*360
Можно в конце %360 дописать, чтоб угол был от 0 до 360.
time_in_minutes - время в минутах. Например если он равен 0.5, то это 30 секунд.

borborich 05.11.2008 23:43

я вот таким кодом сделал ограничение времени -
Код:

// время в милисекундах
var nPause:Number = 5000;

// myFunction - функция которая выполнится после заданного промежутка времени
var nTimeout:Number = setTimeout(myFunction, nPause);

function myFunction():Void
{
        // тут код сообщения по истечении заданного времени
        trace("Прошло 5 секунд");
}

мне нужно чтоб это ограничение показывалось в виде часов со стрелкой делующей полный оборот за 3 минуты

Division 06.11.2008 12:27

Если я правильно понял, нужно что-то вроде этого?
Код:

// время в милисекундах
var nPause:Number = 5000;
var Time:Number = 1000*60*3; // 3 минуты. Время за которое делаем полный оборот
var curTime = 0; // Прошедшее время

// myFunction - функция которая выполнится после заданного промежутка времени
var nTimeout:Number = setTimeout(myFunction, nPause);

function myFunction():Void
{
    // тут код сообщения по истечении заданного времени
        curTime += nPause;
        nTimeout = setTimeout(myFunction, nPause);
        trace(curTime/1000); // Прошедшее время в секундах
        clock._rotation = curTime/Time*360;
}

clock - это мувик со стрелкой, которую поворачиваем. Делает полный оборот за 3 минуты.

Хотя я бы делал всё по-другому (:

borborich 06.11.2008 12:55

а как по другому можно сделать?

Division 06.11.2008 13:01

Ну вообщем-то как удобно, так и делай. Я просто не люблю все эти таймауты и делал бы через getTimer (:

BBOY Ильич 06.11.2008 17:48

Код:

fullTimer = 5;//время в секундах

function rotateArrow()
{
        var curTimer = getTimer();
        var percent = curTimer/(fullTimer*1000)
        percent < 1 ? arrow_mc._rotation = Math.round(percent*360) : clearInterval(intervalID);
}

intervalID = setInterval(rotateArrow, 10);



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

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