|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.03.2008, 19:31 | #1 |
phelgmatic sceptic
Регистрация: 10.03.2008
Сообщений: 7
|
Работа с таймерами
JavaScript. Ф-ия show() показывает картинку. Ф-ия kill() её удаляет. Как сделать чтобы каждые, к примеру, 5 секунд вызывалась фи-ия show() и через каждые 6 секунд после этого вызывалась ф-ия kill()? Поясню, эффект должен быть следующий: каждые пять секунд появляется картинка на шесть секунд.
Я пробовал использовать ф-ии setTimeout()/setInterval, но ничего не получилось: то картинки не удалялись, а вылазили и вылазили каждые пять секунд, то они наооборот не успевают вылазить и "удалялись несуществующие объекты"... :? |
15.03.2008, 23:42 | #2 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Внутри функции kill() в конце вставить:
Код HTML:
window.setTimeout('show()',5000); Код HTML:
window.setTimeout('kill()',6000);
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
16.03.2008, 17:00 | #3 | |
phelgmatic sceptic
Регистрация: 10.03.2008
Сообщений: 7
|
После двух показываний/скрываний картинок появляется следующая ошибка:
Цитата:
|
|
16.03.2008, 17:09 | #4 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
А вам не кажется, что ваше условие
Цитата:
Может быть, все-таки так: каждые одиннадцать секунд появляется картинка на шесть секунд ? Тогда у вас будет - 6 секунд есть картинка, 5 секунд - нет картинки... Нарисуйте простенькую временную диаграмму (ось времени с отсечками для событий) и определитесь с интервалами... |
|
16.03.2008, 17:44 | #5 |
phelgmatic sceptic
Регистрация: 10.03.2008
Сообщений: 7
|
Вы правы. Однако, изменение временных параметров не устранило проблемы. Точнее, старую проблему оно устранило - ошибка больше не появляется, но появилась новая. Теперь смена картинок работает только два раза. После двух появлений/исчезновений картинка застывает.
|
16.03.2008, 19:20 | #6 | |
phelgmatic sceptic
Регистрация: 10.03.2008
Сообщений: 7
|
Чёрт, я совсем с этими таймерами запутался!
Почему не работает: Цитата:
Вначале появляется "хай", потом, через секунду, он заменяется на"хай" (заметно мелькание) и всё! Больше не заменяется! |
|
16.03.2008, 22:14 | #7 | ||
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Из учебника:
Цитата:
Цитата:
Этого набора вполне хватает для вашей задачи. Последний раз редактировалось mihali4; 16.03.2008 в 22:17. |
||
16.03.2008, 22:29 | #8 |
phelgmatic sceptic
Регистрация: 10.03.2008
Сообщений: 7
|
Ну, думаю, до того, чтобы порыться в учебнике, я мог бы додуматься и сам...
В этот раз вы не поняли сути проблемы. Функция setTimeout() выполняется в теле функции, которую она же и вызывает. На лицо имеем рекурсию. То, что она не работает - это уже другое дело. Однако, в проблеме я уже разобрался: такая рекурсия не работает только с методом document.write() Со всеми остальными методами и функциями всё работает отлично. Всем спасибо за помощь. |