Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.12.2011, 09:23
Профессор
Отправить личное сообщение для alexan0308 Посмотреть профиль Найти все сообщения от alexan0308
 
Регистрация: 11.04.2011
Сообщений: 207

И снова секундомер
Пишу игру на яваскрипт, при нажатии на кнопку "Новая игра" запускается секундомер. Взял код by ostgals
function start_timer()  {
      End=0; secs = 0;
      document.getElementById('timer').innerHTML = secs + ' сек.';
      if (timer) clearInterval(timer); 
        var timer = setInterval( function () {
               if (End==1) return; secs++; 
              document.getElementById('timer').innerHTML = secs + ' сек.'; },  1000
                                       );  }

После успешного завершения игры таймер останавливается с помощью
End=1;

Все работает. Проблема в том, что если юзер несколько раз нажмет кнопку "Новая игра" (чтобы может выбрать начальную комбинацию поприятнее), секундомер начинает скакать как бешенный. Видимо, переменная secs получает пинки от нескольких функций. Как решить эту проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 09.12.2011, 09:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от alexan0308
Как решить эту проблему?
Перед запуском таки делать clearInterval().

Сообщение от alexan0308
таймер останавливается с помощью
End=1;
Убрать. И таки опять использовать clearInterval()...
Ответить с цитированием
  #3 (permalink)  
Старый 09.12.2011, 14:47
Профессор
Отправить личное сообщение для alexan0308 Посмотреть профиль Найти все сообщения от alexan0308
 
Регистрация: 11.04.2011
Сообщений: 207

Переделал не помогает. Скачет как бешенный
function start_timer()
     {
	 if (timer) clearInterval(timer);  
	 secs = 0; 
	 document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.';  
	 var timer = setInterval( 
	    function () {
	     secs++;
   		 document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.'; 
		 }, 
		 1000 
		 );
		 }
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2011, 20:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

alexan0308, сделай полный пример. Так ничего не понятно всё равно...
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2011, 22:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

alexan0308,
Сделайте var timer глобальным и будет вам счастье ...
<script type="text/javascript">
var timer;
function start_timer()
     {
	 if (timer) clearInterval(timer);
	 secs = 0;
	 document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.';
	 timer = setInterval(
	    function () {
	     secs++;
   		 document.getElementById('timer').innerHTML = 'Время: '+ secs + ' сек.';
		 },
		 1000
		 );
		 }
</script>
<input type="button" name="" value="test"  onclick="start_timer()"/>
<div id="timer"></div>
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2011, 22:41
Профессор
Отправить личное сообщение для alexan0308 Посмотреть профиль Найти все сообщения от alexan0308
 
Регистрация: 11.04.2011
Сообщений: 207

Сообщение от рони Посмотреть сообщение
alexan0308,
Сделайте var timer глобальным и будет вам счастье ...
Все ясно, спасибо! остановил также таймер
function stop_timer()
     {		 
	   if (timer) clearInterval(timer);	 
		 }

<input type='button' onClick='stop_timer()' value='Завершить игру'>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
панель в панель из панели и снова в панель bessss ExtJS 6 04.09.2011 12:59
И снова про координаты мыши Jeer jQuery 15 21.03.2011 10:28
И снова iframe DDestroy Общие вопросы Javascript 2 09.02.2011 06:50
Снова "Осел"... FirstFrost Internet Explorer 1 06.07.2010 23:13
и снова IE (не работает смена style) lvil Элементы интерфейса 11 09.06.2009 16:37