﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / JavaScript  / Работа с функциями setInterval() и clearInterval() в JavaScript / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Thu, 04 Dec 2008 03:07:35 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>Ребята! Меньше parseInt!!! Это замедляет работу. Если скрипт должен работать только в IE используйте style.pixelLeft(Top|Width|Height) иначе - offsetLeft(Top|Width|Height). Оба эти свойства содержат числа, но pixelLeft(и т.д.) содержит размер в пикселах, а offsetLeft(и т.д.) - в текущих единицах измерения, т.е. если указано "...;left:19pt;...", то в offsetLeft будет число 19.</description><pubDate>Tue, 21 Nov 2006 23:18:29 GMT</pubDate><dc:creator>ISM</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>Спасибо bazile попробую рализовать предложеный тобой алгоритм.</description><pubDate>Thu, 26 Oct 2006 06:35:42 GMT</pubDate><dc:creator>Krundetz</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>[quote][b]Krundetz (25.10.2006)[/b][hr]Работает, но передвигаются одновременно два обекта, а требуется чтобы сначала предвинулся один объект закончил движение и только потом двигался другой.[/quote]&lt;/P&gt;&lt;P&gt;Это потребует переделки алгоритма. Таймер в этом случае будет только один, для него нужно будет объявить глобальную переменную (var timerid;). Далее можно создать массив объектов которые надо двигать (var obj_ids = ["img35", "img36"];). Затем устанавливаем таймер. Функция вызываемая по таймеру будет двигать объект до остановки после чего будет смотреть нет ли в массиве еще объектов котрые надо двигать и если есть, то создает новый таймер для этого объекта.&lt;/P&gt;&lt;P&gt;[quote][b]Krundetz (25.10.2006)[/b][hr]Если можно более подробно про идентификатор.[/quote]&lt;/P&gt;&lt;P&gt;В справке все ясно сказано: &lt;EM&gt;"Returns an identifier that cancels the timer with the clearInterval method."&lt;/EM&gt;. То есть результат выполнения setInterval() должен передаваься функции clearInterval(). Так как можно иметь несколько одновременно работающих таймеров, то результат setInterval() нужно обязательно сохранять в разные переменные.</description><pubDate>Wed, 25 Oct 2006 11:13:44 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>dx=2;&lt;BR&gt;dy=2;&lt;/P&gt;&lt;P&gt;function move(dx,dy,id) {&lt;BR&gt;var y=parseInt(document.getElementById(id).style.top);&lt;BR&gt;var x=parseInt(document.getElementById(id).style.left);&lt;BR&gt;document.getElementById(id).style.top=y+dy;&lt;BR&gt;document.getElementById(id).style.left=x+dx;&lt;BR&gt;if(parseInt(document.getElementById(id).style.left)&amp;gt;500){&lt;/P&gt;&lt;P&gt;}&lt;BR&gt;else {&lt;BR&gt;setTimeout("move(dx,dy,id)",5);&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;id="img36";&lt;BR&gt;move(dx,dy,id);&lt;BR&gt;id="img35";&lt;BR&gt;move(dx,dy,id);&lt;BR&gt;&lt;/P&gt;&lt;P&gt;Вроде будет работать так как тебе надо...</description><pubDate>Wed, 25 Oct 2006 09:14:52 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>[quote][b]Vizlim (24.10.2006)[/b][hr]&lt;br&gt;Попробуй вместо &lt;STRONG&gt;clearInterval(id_move);&lt;/STRONG&gt;написать:&lt;br&gt;&lt;br&gt;id="img35";&lt;br&gt;init_move(id);[/quote]&lt;br&gt;&lt;br&gt;Попробовал тоже самое.&lt;br&gt;&lt;br&gt;[quote]&amp;lt;img src="1.gif"id="img35"style="position:absolute;"&amp;gt;[/quote]&lt;br&gt;Так и задаю.</description><pubDate>Wed, 25 Oct 2006 02:25:21 GMT</pubDate><dc:creator>Krundetz</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>Работает, но передвигаются одновременно два обекта, а требуется чтобы сначала предвинулся один объект закончил движение и только потом двигался другой. Если можно более подробно про идентификатор.</description><pubDate>Wed, 25 Oct 2006 02:19:32 GMT</pubDate><dc:creator>Krundetz</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>Спасибо. Сейчас попробую.</description><pubDate>Wed, 25 Oct 2006 02:02:45 GMT</pubDate><dc:creator>Krundetz</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>Потому что ты сохраняешь идентификатор таймера (результат выполнения setInterval) в одну и ту же переменную. Второй вызов просто затирает предыдущее значение.&lt;/P&gt;&lt;P&gt;Есть и другие ошибки. Я не буду их объяснять, а просто приведу исправленный вариант:&lt;/P&gt;&lt;P&gt;[code]function init_move(id)&lt;BR&gt;{&lt;BR&gt; timers[id] = setInterval("move(2,2,'"+id"')", 5);&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;function move(dx,dy,id)&lt;BR&gt;{&lt;BR&gt; var objStyle = &amp;#100;ocument.getElementById(id).style;&lt;BR&gt; &lt;BR&gt; var y =parseInt(objStyle.top);&lt;BR&gt; var x =parseInt(objStyle.left);&lt;BR&gt; objStyle.top  = y+dy;&lt;BR&gt; objStyle.left = x+dx;&lt;BR&gt; if(parseInt(objStyle.left) &amp;gt; 500)&lt;BR&gt; {&lt;BR&gt;  clearInterval(timers[id]);&lt;BR&gt;  timers[id] = null;&lt;BR&gt; }&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;var timers = [];&lt;BR&gt;init_move("img36");&lt;BR&gt;init_move("img35");[/code]</description><pubDate>Tue, 24 Oct 2006 10:36:19 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>Почему неработает? Возможно при вызове функции, функция переходит во власть интервала и поэтому не доходит до вызова строки:&lt;P&gt;id="img35";&lt;BR&gt;init_move(id); &lt;/P&gt;&lt;P&gt;Попробуй вместо &lt;STRONG&gt;clearInterval(id_move); &lt;/STRONG&gt;написать:&lt;/P&gt;&lt;P&gt;id="img35";&lt;BR&gt;init_move(id);&lt;/P&gt;&lt;P&gt;Если работать не будет, то или условие неверное (хотя, всё правельно) или неправельно заданы настройки изображения, должно быть нечто подобное:&lt;/P&gt;&lt;P&gt;&amp;lt;img src="1.gif" id="img35" style="position:absolute;"&amp;gt;</description><pubDate>Tue, 24 Oct 2006 08:57:13 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: Работа с функциями setInterval() и clearInterval() в JavaScript</title><link>http://www.relib.com/forums/Topic906137-10-1.aspx</link><description>Разобрался там не то что мне надо.&lt;br&gt;Вот что у меня не работает.&lt;br&gt;[code]&lt;br&gt;function init_move(id)&lt;br&gt;{&lt;br&gt;dx=2;&lt;br&gt;dy=2;&lt;br&gt;id_move=setInterval("move(dx,dy,id)",5);&lt;br&gt;}&lt;br&gt;function move(dx,dy,id)&lt;br&gt;{&lt;br&gt;var y=parseInt(document.getElementById(id).style.top);&lt;br&gt;var x=parseInt(document.getElementById(id).style.left);&lt;br&gt;document.getElementById(id).style.top=y+dy;&lt;br&gt;document.getElementById(id).style.left=x+dx;&lt;br&gt;if(parseInt(document.getElementById(id).style.left)&gt;500)&lt;br&gt;{&lt;br&gt;clearInterval(id_move);&lt;br&gt;}&lt;br&gt;}&lt;br&gt;id="img36";&lt;br&gt;init_move(id);&lt;br&gt;id="img35";&lt;br&gt;init_move(id);&lt;br&gt;&lt;br&gt;[/code]&lt;br&gt;Не пойму почему вместо того чтобы передвигать второй обект img35 продолжает двигаться обект img36 хотя я его останавливаю.</description><pubDate>Tue, 24 Oct 2006 00:55:23 GMT</pubDate><dc:creator>Krundetz</dc:creator></item></channel></rss>