Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как организовать задержку 
:(
    Опции темы
aleksaxxx
Дата 7.6.2005, 16:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нужно, чтобы скрипт выполнял такую задачу: на экран выводиться картинка (картинка нарисована на PHP). Генериться случайное число, и через это случаное число секунд картинка меняеться. Нужно, чтобы юзер за минимальное время после изменения картинки кликнул на ней. Если у юзера сдадут нервы и он кликнет до того как картинка изменится, выводиться гневная надпись и т.д. и т.п. Такой себе тест на скорость. Пробовала использавоть setTimeout для организации задержки ьперед изменением картинки, но при его использовании картинка почему то меняеться сразу. Я использую такую функцию для задержки

Код

function pause (mSec) {
    clock = new Date();
    justMinute = clock.getTime();
    while (true) {
    just = new Date();
    if ((just.getTime() - justMinute > mSec) ) break;
    }
}

Но мне нужно отслеживать если юзер кликнул мышкой до того как картинка поменялась.
Весь скрипт

Код

<html>
<head>
<title>Документ без имени</title>
<meta http-equiv="Тип-содержимое" content="text/html; charset=iso-8859-1">
<meta http-equiv="Тип-содержимое" content="text/html; charset=iso-8859-1">
</head>

<script language="javascript">
var c=0,t1=0,t2=0/*время включения лампы и клика юзера*/,l=0/*состояние лампы*/,r=0/*случайное число*/;


function getrandom(){
r=Math.round(Math.random()*10,-1);
if (r<6)r=r+3; else r=r-3;
return r;
}

function vremya(){
var time=new Date();
t=time.getTime();
return t;
}

function lampa()/*Лампа включается*/{
    document.pict.src='white.php'
    l=1;
    t1=vremya(); // Время включения лампы
//    clearTimeout();
}


function starts()/*Перед началом игры*/{
    document.out.results.value=document.out.results.value+'\n\n';    
    l=0;
    document.out.results.value=document.out.results.value+'r='+r+'\n';    
    t1=0;t2=0;
}

function pause (mSec) {
    clock = new Date();
    justMinute = clock.getTime();
    while (true) {
    just = new Date();
    if ((just.getTime() - justMinute > mSec) ) break;
    }
} 

function clicks()/*юзер кликает при включении лампы*/{
if (l==0){    document.out.results.value=document.out.results.value+'Фальстарт\n';}else if(l==1){
    t2=vremya();
    document.out.results.value=document.out.results.value+'t2='+t2+'\nt1='+t1+'\n';
    var t=t2-t1;
    document.out.results.value=document.out.results.value+'Разница времени = '+t*0.001+'\n';    
    }
    document.out.results.value=document.out.results.value+"Кликните мышкой, чтобы начать, а потом кликните мышкой сразу же после включения лампы."+'\n';    
    document.pict.src="grey.php";
}



function najat()/*Обработка клика мышки на странице*/
{
if (c==0)/*До старта или после клика юзера при загорании лампы*/{
    c=1;
    document.out.results.value=document.out.results.value+'c='+c+'\n';    
    starts();        
    r=getrandom()*1000;
    pause®; 
    //setTimeout(lampa(),3000);
} else


if (c==1)/*Сразу после загорания лампы*/{
    c=0;
    document.out.results.value=document.out.results.value+'c='+c+'\n';    
    clicks();
}
}
</script>





<body bgcolor="#000000">
<font color='#FF0000' face="Times New Roman, Times, serif" size="+1">

<form name="out">
<input type=text name="info" size=70 value="Кликните мышкой, чтобы начать."><p>
<textarea name="results" rows=20 cols=70></textarea><p>
</form>

<img src="grey.php" alt="Image, created by PHP"  name="pict"  onClick="najat()">


<p>
Игруха


</body>



</html>

Как можно решить эту проблему?


 ! 
 

Пользуйся подствекой форума!


Это сообщение отредактировал(а) Aliance - 7.6.2005, 22:38
  Вверх
Aliance
Дата 7.6.2005, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Модератор: Название темы должно отражать ее суть!
PM MAIL WWW ICQ Skype   Вверх
Guest
Дата 13.6.2005, 11:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А конструктивные предложения касательно вопроса есть?
  Вверх
Ciber SLasH
Дата 13.6.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Делай через setInterval().
Например:
Код

timer = setInterval(MyFunc, 10)  // повторяем отрисовку каждые 10 мс
function MyFunc() {
  if (<условие, после которого нужно закончить повторение функции>) {
    clearInterval(timer);  // снимаем таймер

    // какие-нить твои действия

    return
  }
}

PM   Вверх
Aliance
Дата 13.6.2005, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Ciber SLasH
Разве в первой строчке не нужно круглые скобки?
И не забывай ставить точки с запятой после каждой законченной инструкции, это полезная привычка =)
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 18.6.2005, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Aliance @ 13.6.2005, 16:34)
Разве в первой строчке не нужно круглые скобки?

Нет не нужны.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0984 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.