Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2013, 01:16
Интересующийся
Отправить личное сообщение для Mkaa Посмотреть профиль Найти все сообщения от Mkaa
 
Регистрация: 01.09.2012
Сообщений: 16

Работа таймеров
Очень большое дополнение ниже


Есть Таймер, который каждые 300мс запускает еще таймер который должен сработать 1 раз через 1000мс.
В итоге таймер, который срабатывает через секунду работает не корректно.
function ITTIMER300SECRUN( ){ randy=rand(1,8);
		
		hostile[cLvl][pLvl][randy][8] ="z";
		oldxMage=8;
		oldyMage=randy;
		
		var tY=setInterval(function(){
		var _y=oldyMage;
		var _x=oldxMage-1;
		delZ(_y,_x);
		hostile[cLvl][pLvl][_y][_x]="5";
		clearTimeout(tY);
		}, 1000);

}

Мне бы хотелось узнать как создать локальный таймер.

Последний раз редактировалось Mkaa, 12.09.2013 в 20:42.
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2013, 13:56
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

Сообщение от Mkaa Посмотреть сообщение
Есть Таймер, который каждые 300мс запускает еще таймер который должен сработать 1 раз через 1000мс.
var id = setInterval(function() {

	console.log("test");
		
	setTimeout(function() {

			   clearInterval(id);

			   }, 1000);
			   
}, 300);

Сообщение от Mkaa Посмотреть сообщение
В итоге таймер, который срабатывает через секунду работает не корректно.
setInterval() останавливается так :
var setIntervalId = setInterval( ... );
clearInterval(setIntervalId);
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2013, 00:21
Интересующийся
Отправить личное сообщение для Mkaa Посмотреть профиль Найти все сообщения от Mkaa
 
Регистрация: 01.09.2012
Сообщений: 16

Цитата:
clearInterval(id);
Зачем вырубать?
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2013, 01:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Mkaa,
запускаите интервал
Цитата:
var tY=setInterval
а останавливаите таймер
Цитата:
clearTimeout(tY);
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2013, 20:41
Интересующийся
Отправить личное сообщение для Mkaa Посмотреть профиль Найти все сообщения от Mkaa
 
Регистрация: 01.09.2012
Сообщений: 16


var magTimer=setInterval(MageAction,1000);

function MageAction() {


  randx = 1;
  if (randx == 1) {
    randy = rand(1, 8);

    hostile[cLvl][pLvl][randy][8] = "z";
    oldxMage = 8;
    oldyMage = randy;
    var time = new Date();
    console.log(time + "CREATE" + "||" + randy + ":" + oldxMage);
    var tY = setInterval(function () {

      var time = new Date();
      console.log(time + "УДАЛЯЮ");
      var _y = oldyMage;
      var _x = oldxMage - 1;
      if (cLvl == 3) {
        hostile[cLvl][pLvl][_y][_x] = "5";
      }
      var time = new Date();
      console.log(time + "УДАЛЯЮ" + "||" + _y + ":" + (++_x));
      hostile[cLvl][pLvl][_y][(_x + 1)] = 0;
      console.log(tess);
      tess++;
      clearInterval(tY);

    }, 3000);


  }

Поднимаю тему уже с дополнением.
Выше код которые нужно довести до ума.
А именно разобраться с принципом работы Таймера.

Уже начал отлавливать каждую секунду
и в итоге получаю:
Thu Sep 12 2013 20:31:25 GMT+0400 (Московское время (зима))CREATE|| 4:8 №1
Thu Sep 12 2013 20:31:26 GMT+0400 (Московское время (зима))CREATE|| 8:8 №2
Thu Sep 12 2013 20:31:27 GMT+0400 (Московское время (зима))CREATE|| 1:8 №3
Thu Sep 12 2013 20:31:28 GMT+0400 (Московское время (зима))CREATE|| 4:8
Thu Sep 12 2013 20:31:28 GMT+0400 (Московское время (зима))УДАЛЯЮ|| 4:8 №1
Thu Sep 12 2013 20:31:29 GMT+0400 (Московское время (зима))УДАЛЯЮ|| 4:8 №2
Thu Sep 12 2013 20:31:29 GMT+0400 (Московское время (зима))CREATE|| 4:8
Thu Sep 12 2013 20:31:30 GMT+0400 (Московское время (зима))УДАЛЯЮ|| 4:8 №3
================================================== ============================
Выясняется, что переменные _x и _y изменяются после каждого действия [CREATE], но если я создаю локальный таймер, внутри имеются тоже локальные переменные, то почему так происходит?????
Или что? Происходит не присваивание, а указание на данные чтоль?
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2013, 21:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Mkaa,
может почитать http://learn.javascript.ru/settimeout-setinterval
а пока ваши шифровки до центра не дошли
Ответить с цитированием
  #7 (permalink)  
Старый 12.09.2013, 21:16
Интересующийся
Отправить личное сообщение для Mkaa Посмотреть профиль Найти все сообщения от Mkaa
 
Регистрация: 01.09.2012
Сообщений: 16

Цитата:
шифровки до центра не дошли
Что?
Ответить с цитированием
  #8 (permalink)  
Старый 12.09.2013, 22:05
Интересующийся
Отправить личное сообщение для Mkaa Посмотреть профиль Найти все сообщения от Mkaa
 
Регистрация: 01.09.2012
Сообщений: 16

Разобрался сам, Глобалки такие Глобалки.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Front-end разработчик, работа удаленная или в офисе(Нижний Новгород), фуллтайм. VadimZharko Работа 8 29.04.2013 09:03
работа менеджером georgi Работа 1 29.03.2013 14:18
Javascript фронтенд разработчик(долгосрочная, удаленная работа) cpp Работа 11 16.09.2012 12:04
Программист JavaScript постоянная удалённая работа. moisha Работа 4 26.10.2011 19:52
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06