Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: kvak от 28 Мая 2003, 22:01:25

Название: Таймер в Javascript
Отправлено: kvak от 28 Мая 2003, 22:01:25
Как реализовать задержку между двумя последовательными кадрами в анимации без рекурсии? Кадр находится в слое который должен двигаться синхронно со сменой кадров.
Заранее спасибо,
kvak
Название: Таймер в Javascript
Отправлено: D1g174LM4n14c от 28 Мая 2003, 22:25:25
window.SetTimeout()
или
window.SetInterval()

(зависит от задачи)

Подробнее см. в справочнике (руководстве) по JavaScript
Название: Таймер в Javascript
Отправлено: kvak от 28 Мая 2003, 22:44:29
Вот такой код не работает. Справочников я просмотрела уже штуки три...

function changepic()
{
document.images[0].src=walk[k].src
}
   
function goxy(x, y)
{
 if (document.all)
   {
      for (layer2.style.posLeft=0; layer2.style.posLeft      {
         k++;
         if (k>NumberOfImages) k=0;
         setTimeout ("changepic()", 1000);
      }
}

Заранее спасибо,
kvak
Название: Таймер в Javascript
Отправлено: Oak от 29 Мая 2003, 02:14:50
а шо это имелось ввиду? :)

человеческим языком пожалуста..

потому как там бредд написан ;)

Цикла такого низя делать


function changepic(k)
{
document.images[0].src=walk[k].src

 k++;

if (k>NumberOfImages) k=0;

setTimeout ("changepic("+k+")", 1000);
}


Название: Таймер в Javascript
Отправлено: kvak от 29 Мая 2003, 10:15:58
В том случае как вы написали, картинка будет стоять на месте. А нужно, чтобы она еще и перемещалась до заданной координаты. Для этого и был нужен цикл. Что именно в моем коде - бред?
Заранее спасибо,
kvak
Название: Таймер в Javascript
Отправлено: Oak от 29 Мая 2003, 13:02:45
Тогда в эту функцию надо просто дописать
layer2.style.posLeft+=10

а setTimeout ("changepic("+k+")", 1000);
заменить на

if(layer2.style.posLeft
А бредом в предложенном Вами примере является наличие цикла :)
Это наличи говорит об опыте программирования под DOS и отсутствие опыта программирования под Windows (событийная модель программирования)

Или Вы все еще не видите где именно в моем примере подразумевается аналог цикла ? :)

Иначе - низя  - не работает. Цикл слишком быстро завершается.
Название: Таймер в Javascript
Отправлено: kvak от 29 Мая 2003, 23:15:51
Спасибо вам большое. При реализации движения по прямой по рекурсии, все работает. Но если я пишу отдельно движение по вертикали, отдельно - движение по горизонтали, а затем вызываю их последовательно картинка начинает двигаться по диагонали! Получается, что таймер работает вообще независимо от фигурных скобок? Как можно это обойти?
Опыта программирования под Windows  у меня и правда, никакого, писала только под борландсями 8((
Заранее спасибо,
kvak
Название: Таймер в Javascript
Отправлено: mike от 30 Мая 2003, 14:47:24
Цитировать
kvak:
Но если я пишу отдельно движение по вертикали, отдельно - движение по горизонтали, а затем вызываю их последовательно картинка начинает двигаться по диагонали! Получается, что таймер работает вообще независимо от фигурных скобок? Как можно это обойти?

Даже когда ты вызываешь их последовательно, функции отрабатывают каждая по разу и оставляют после себя таймеры следующего вызова. Поэтому если тебе нужно знать, когда закончилось движение, вызывай движение по горизонтали из условия окончания движения по вертикали, или в одной функции следи за флажками, которые выставляются в другой. Все зависит от того, чего именно ты хочешь добиться.
Название: Таймер в Javascript
Отправлено: Oak от 30 Мая 2003, 16:16:05
[off]А какой броузер? Интересно ведь ;)[/off]
Название: Таймер в Javascript
Отправлено: kvak от 30 Мая 2003, 18:05:30
Вот теперь все заработало! Всем спасибо!

Броузер - MS IE...
Название: Таймер в Javascript
Отправлено: D1g174LM4n14c от 31 Мая 2003, 10:16:57
а версия?
Название: Таймер в Javascript
Отправлено: kvak от 31 Мая 2003, 12:41:41
5.0
Название: Таймер в Javascript
Отправлено: D1g174LM4n14c от 31 Мая 2003, 13:53:16
Пора 6-ю ставить... Она лучше и современнее...
К тому же IE6 & Netscape 6 начали (наконец-то!) поддерживать стандарты *ML и используют... Ну и еще много новинок...

...это не реклама :)
Название: Таймер в Javascript
Отправлено: mike от 02 Июня 2003, 20:12:19
[OFF]А ведь все равно надо, чтобы подо всеми работало :)[/OFF]
Название: Таймер в Javascript
Отправлено: kvak от 02 Июня 2003, 20:44:06
Под Несткейпом легче написать, там нет всех этих заморочек со слоями...

Так как это курсовая, то работать оно должно в первую очередь под броузером преподавателя... 8)
kvak