Автор Тема: Таймер в Javascript  (Прочитано 7288 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kvak

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Таймер в Javascript
« : 28 Мая 2003, 22:01:25 »
Как реализовать задержку между двумя последовательными кадрами в анимации без рекурсии? Кадр находится в слое который должен двигаться синхронно со сменой кадров.
Заранее спасибо,
kvak

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #1 : 28 Мая 2003, 22:25:25 »
window.SetTimeout()
или
window.SetInterval()

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

Подробнее см. в справочнике (руководстве) по JavaScript
Мы такие!

Оффлайн kvak

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #2 : 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

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #3 : 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);
}


[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн kvak

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #4 : 29 Мая 2003, 10:15:58 »
В том случае как вы написали, картинка будет стоять на месте. А нужно, чтобы она еще и перемещалась до заданной координаты. Для этого и был нужен цикл. Что именно в моем коде - бред?
Заранее спасибо,
kvak

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #5 : 29 Мая 2003, 13:02:45 »
Тогда в эту функцию надо просто дописать
layer2.style.posLeft+=10

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

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

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

Иначе - низя  - не работает. Цикл слишком быстро завершается.
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн kvak

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #6 : 29 Мая 2003, 23:15:51 »
Спасибо вам большое. При реализации движения по прямой по рекурсии, все работает. Но если я пишу отдельно движение по вертикали, отдельно - движение по горизонтали, а затем вызываю их последовательно картинка начинает двигаться по диагонали! Получается, что таймер работает вообще независимо от фигурных скобок? Как можно это обойти?
Опыта программирования под Windows  у меня и правда, никакого, писала только под борландсями 8((
Заранее спасибо,
kvak

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #7 : 30 Мая 2003, 14:47:24 »
Цитировать
kvak:
Но если я пишу отдельно движение по вертикали, отдельно - движение по горизонтали, а затем вызываю их последовательно картинка начинает двигаться по диагонали! Получается, что таймер работает вообще независимо от фигурных скобок? Как можно это обойти?

Даже когда ты вызываешь их последовательно, функции отрабатывают каждая по разу и оставляют после себя таймеры следующего вызова. Поэтому если тебе нужно знать, когда закончилось движение, вызывай движение по горизонтали из условия окончания движения по вертикали, или в одной функции следи за флажками, которые выставляются в другой. Все зависит от того, чего именно ты хочешь добиться.
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #8 : 30 Мая 2003, 16:16:05 »
[off]А какой броузер? Интересно ведь ;)[/off]
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн kvak

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #9 : 30 Мая 2003, 18:05:30 »
Вот теперь все заработало! Всем спасибо!

Броузер - MS IE...

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #10 : 31 Мая 2003, 10:16:57 »
а версия?
Мы такие!

Оффлайн kvak

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #11 : 31 Мая 2003, 12:41:41 »
5.0

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #12 : 31 Мая 2003, 13:53:16 »
Пора 6-ю ставить... Она лучше и современнее...
К тому же IE6 & Netscape 6 начали (наконец-то!) поддерживать стандарты *ML и используют... Ну и еще много новинок...

...это не реклама :)
Мы такие!

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #13 : 02 Июня 2003, 20:12:19 »
[OFF]А ведь все равно надо, чтобы подо всеми работало :)[/OFF]
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн kvak

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Таймер в Javascript
« Ответ #14 : 02 Июня 2003, 20:44:06 »
Под Несткейпом легче написать, там нет всех этих заморочек со слоями...

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28