Как организовать задержку

  • Автор темы Автор темы aleksa
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
A

aleksa

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

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

Но мне нужно отслеживать если юзер кликнул мышкой до того как картинка поменялась.
Как можно решить эту проблему?
 
А если эту задачу написать на Flash ?
Получится и просто, и изящно :)
 
И в чем проблема ?
Я думаю принцип такой.
Считай разницу во времени между 2 событиями - изменением картинки и кликом по ней.
Если отрицательная, значит клик состоялся раньше изменения, положительная – позже.

А ты пытаешься отталкиваться от «задержки». Магическое слово для всех девчонок :(

sleep(7) – задержка на 7 секунд. Но эта функция тебе не нужна!
 
Проблема в том, что клики во время выполнения pause() не отлавливаються, а setTimeout() почему то не работает.
 
вот я и говорю что ты неправильно строишь алгоритм обработки появление_картинки/клик. зачем тут пауза?
 
Картинка должна появляться через определенный случайный отрезок времени. Для этого я и использую паузу, задержку то бишь, перед ее появлением.
 
не использую паузу как таковую вообще. во время паузы ты не сможешь проконтролировать клик. просто вычмисляй время между появлением картинки и кликом.
может у нас разные понятия о термине пауза?
 
Как мне тогда сделать, чтобы картинка появлялась через определенный интервал? Например через 3 секунды после клика юзера. Как мне этои 3 секунды отсчитать?
 
Как мне тогда отсчитать время перед появлением картинки?
 
вроде все рассказал. осталось только самому написать код :)
 
Не надо код писать. Он уже почти написан. Лучше КОНКРЕТНО скажи, как сделать, чтобы каритинка появлялась через определенное время.
 
сказал же уже, конкретнее некуда. у тебя неправильное построение алгоритма.
 
А где неправильности?

Генерим случайное число ran |Если юзер кликнул - выводим |
Выжидаем ran*1000 мс------------->|сообщение о досрочном клике |
|Переходим на начало, все обнуляем и т.д.|

Меняем картинку,фиксируем время
Если юзер кликает, фиксируем время
Вычисляем разницу
Переходим на начало

Проблема в том, как сделать "выжидание" и чтобы при этом можно было досрочный клик отлавливать.
 
Может я непонятно блок схему нарисовала, но увы - средства форума ограничивают.
 
Я уже нашла ошибку. Ошибка была не в алгоритме, как некоторые мне доказывали, а всего лишь в отсутствии пары ковычек. Всем спасибо.
 
тремя постами выше написан алгоритм о котором я распинался. а большие листинги здесь никто читать не будет.
решила трабл - молодец!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!