Итак, я новичок здесь, извините, если это основной вопрос, но я не вижу ответа на него где-либо еще.
Я пытаюсь написать веб-приложение, которое показывает анимацию (с использованием pixijs), а затем отображает div, запрашивающий ответ. Моя проблема заключается в том, что, поскольку анимация обрабатывается с помощью requestAnimationFrame, анимация происходит асинхронно, поэтому фазы ответа и анимации происходят одновременно (элемент div появляется мгновенно и скрывает анимацию).
Теперь я огляделся, и, похоже, консенсус заключается в использовании функции обратного вызова, которая запускается только после того, как вся асинхронная работа выполнена, что позволяет выполнять эту последовательную прогрессию.
ОДНАКО, requestAnimationFrame принимает форму
requestAnimationFrame(update_screen_objects),
но ломается, когда я пытаюсь сделать:
requestAnimationFrame(update_screen_objects(response_phase_callback))
поскольку явно requestAnimationFrame не любит, когда ему передается функция, которая сама имеет обратный вызов. Итак, мой вопрос: что мне делать с циклом анимации, чтобы последующие функции выполнялись ПОСЛЕ завершения анимации?
Спасибо!
ИЗМЕНИТЬ
Это пример кода в приведенной выше форме, который не работает.
function animate(callback) {
var finished = false;
if ((new Date().getTime()) < adaptTime){
runFlicker(false);
} else if ((new Date().getTime()) < judgeTime){
hideAdaptors();
} else if ((new Date().getTime()) > judgeTime){
stage.visible = false;
finished = true;
}
renderer.render(stage);
if (!finished){
requestAnimationFrame( animate(callback) ); //Ensures it will keep looping
//requestAnimationFrame(animate); //This does work, but my issue still persists
} else {
callback(); //By the time callback() is required, you can't access it as requestAnimationFrame doesn't accept animate() with a function passed to it.
}
}
requestAnimationFrame
не будет передавать аргументы в функцию - person markasoftware   schedule 27.10.2014update_screen_objects
и передает ваш обратный вызов. - person Bergi   schedule 27.10.2014