|
|
|
Junior Member
      
участник
Last Login: 05.12.2007 15:14
Сообщ.: 18,
Visits: 140
|
|
| Если у кого есть выложите пример работы с этими функциями. Если быть точнее интерисует вызов этих функций по несколку раз для разных обектов.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
|
|
|
|
Junior Member
      
участник
Last Login: 05.12.2007 15:14
Сообщ.: 18,
Visits: 140
|
|
| Спасибо. Буду разбираться.
|
|
|
|
|
Junior Member
      
участник
Last Login: 05.12.2007 15:14
Сообщ.: 18,
Visits: 140
|
|
Разобрался там не то что мне надо.
Вот что у меня не работает.
function init_move(id)
{
dx=2;
dy=2;
id_move=setInterval("move(dx,dy,id)",5);
}
function move(dx,dy,id)
{
var y=parseInt(document.getElementById(id).style.top);
var x=parseInt(document.getElementById(id).style.left);
document.getElementById(id).style.top=y+dy;
document.getElementById(id).style.left=x+dx;
if(parseInt(document.getElementById(id).style.left)>500)
{
clearInterval(id_move);
}
}
id="img36";
init_move(id);
id="img35";
init_move(id);
Не пойму почему вместо того чтобы передвигать второй обект img35 продолжает двигаться обект img36 хотя я его останавливаю.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.05.2008 20:04
Сообщ.: 269,
Visits: 2 381
|
|
| Почему неработает? Возможно при вызове функции, функция переходит во власть интервала и поэтому не доходит до вызова строки: id="img35"; init_move(id); Попробуй вместо clearInterval(id_move); написать: id="img35"; init_move(id); Если работать не будет, то или условие неверное (хотя, всё правельно) или неправельно заданы настройки изображения, должно быть нечто подобное: <img src="1.gif" id="img35" style="position:absolute;">
----------------------------------
Я безработный...
Возьмите меня на работу. =)
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Потому что ты сохраняешь идентификатор таймера (результат выполнения setInterval) в одну и ту же переменную. Второй вызов просто затирает предыдущее значение. Есть и другие ошибки. Я не буду их объяснять, а просто приведу исправленный вариант: function init_move(id) { timers[id] = setInterval("move(2,2,'"+id"')", 5); }function move(dx,dy,id) { var objStyle = document.getElementById(id).style; var y =parseInt(objStyle.top); var x =parseInt(objStyle.left); objStyle.top = y+dy; objStyle.left = x+dx; if(parseInt(objStyle.left) > 500) { clearInterval(timers[id]); timers[id] = null; } } var timers = []; init_move("img36"); init_move("img35");
|
|
|
|
|
Junior Member
      
участник
Last Login: 05.12.2007 15:14
Сообщ.: 18,
Visits: 140
|
|
| Спасибо. Сейчас попробую.
|
|
|
|
|
Junior Member
      
участник
Last Login: 05.12.2007 15:14
Сообщ.: 18,
Visits: 140
|
|
| Работает, но передвигаются одновременно два обекта, а требуется чтобы сначала предвинулся один объект закончил движение и только потом двигался другой. Если можно более подробно про идентификатор.
|
|
|
|
|
|
| | |