//
// version 1
//
var requestAnimFram = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequsetAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000 / 60);
}
})();
//version 1 usage
function main(){
//main loop
...
requestAnimFram(main);
}
main();
//
// version 2
//
var animFram = {
req: window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000 / 60);
},
ccl: window.cancelAnimationFrame ||
window.mozCancelAnimationFrame,
myReq: 0
};
//version 2 usage
function main(){
...
aniFram.myReq = aniFram.req(main);
}
main();
function stop(){
aniFram.ccl(myReq);
}
Пока я изучал некоторые примеры кодов, я нашел requestAnimationFrame
. Версия 1 вырезана из нее и работает нормально. После некоторого поиска я также нашел cancelAnimationFrame
и хотел использовать их обоих. Поэтому я сделал фиктивную страницу для теста. Версия 2 вырезана из него.
Проблема в том, что он не зацикливается. Итак, у меня есть два вопроса.
Нельзя ли использовать
requestAnimationFrame
таким образом? Если да, то почему именно так?Если это возможно, но я делаю это неправильно, как я могу этого добиться?
ccl: ccl, myReq: 0; // Remove semicolon
- person Serge K.   schedule 27.06.2017