Вызов функции после функции SetTimeout - PullRequest
1 голос
/ 19 декабря 2011

У меня есть этот код, который делает анимацию изображения, но я хочу вызвать функцию AnotherAction(), когда анимация закончится через вызов clearTimeout(gLoop);

var Animate = function(){  
    Clear();  
    MoveDown();  
    gLoop = setTimeout(Animate,40);  
}

var MoveDown = function(){  
    // animation code  
    if(velocity==0){  
        clearTimeout(gLoop);  
        AnotherAction();  //Here is not working  
    }  
}

Где я должен был позвонить на AnotherAction()?

1 Ответ

3 голосов
/ 19 декабря 2011

Я думаю, проблема в том, что вы очищаете тайм-аут до , вы устанавливаете его в следующий раз.MoveDown сбрасывает время ожидания, но как только управление переключается обратно в Animate, вы устанавливаете его снова.

Попробуйте что-то вроде этого:

var Animate = function(){  
    Clear();  
    if (MoveDown())
        gLoop = setTimeout(Animate,40);  
}

var MoveDown = function(){  
    // animation code  
    if(velocity==0){  
        AnotherAction();  //Here is not working  
        return false;
    }
    return true;  
}
...