проблема с облостью видимости
есть такая конструкция:
function parent () {
var a1, a2
function child1 () {
clearTimeout(a2);
/*код выполнения*/
a1 = setTimeout(child1 (), 5000);
}
function child2 () {
clearTimeout(a1);
/*код выполнения*/
a2 = setTimeout(child2 (), 5000);
}
}
clearTimeout() не может остановить другой, не видет его, как исправить можно? |
Вы не устанавливаете таймаут, а сразу вызываете child1 и child2.
|
а мне надо с промежутком там анимация
|
Цитата:
st = setTimeout(function () { smoothshow(); }, speed);
|
czp,уберите скобки
Цитата:
|
так, а как же мне сделать, что бы одна другую функция останавливала???
|
Тот код, что вы привели - просто объявляет ф-ции. А их ещё нужно запустить... Смекаете? Где-то в ф-ции parent должно быть написано child1(), child2(). Их нужно вызвать.
|
Цитата:
----- я же весь код не вылаживал, это так что бы понять по быстрому, есле надо могу весь код выложить |
Честно говоря, не совсем понимаю, что вам нужно. Вам нужно, чтобы сначала целиком выполнилась 1-я анимация, и только потом начала выполняться вторая? Так?
|
нет, мне надо:
когда выполняется первая анимация, и есле начнется выполнятся вторая анимация, то первая должна остановиться. -- и точно так же , есле вторая выполняется, и есле начинается выполнение первой, то вторая должна остановиться |
Как-то так:
var interv1= false, interv2= false;
var anim1= function() {
if (interv2) { // если запущена анимация 2
clearInterval(interv2); // останавливаем её
interv2= false; // ставим "флаг состояния" анимации 2
};
if (!interv1) { // если анимация 1 не запущена, это нужно для 1-го раза)
interv1= setInterval(anim1);
/* здесь идёт весь ваш код, все ваши повторяющиеся действия */
};
var anim1= function() {// тут всё то же самое, в принципе
if (interv1) { // если запущена анимация 1
clearInterval(interv2); // останавливаем её
interv2= false; // ставим "флаг состояния" анимации 1
};
if (!interv2) { // если анимация 2 не запущена, это нужно для 1-го раза)
interv1= setInterval(anim2);
/* здесь идёт весь ваш код, все ваши повторяющиеся действия */
};
|
ага, ход мысли понял, спасибо пошел разбираться, плюсик вам в копилку)
|
| Часовой пояс GMT +3, время: 04:45. |