Я изо всех сил пытаюсь создать анимацию рисования линий, используя кадр анимации запроса. Пока я использовал функцию setInterval, все работало нормально, но я где-то читал, что кадр запроса ани намного оптимизирован и что все функции в интервале должны быть написаны таким образом.
Итак, вот мой код:
вар топМинХ = 3; вар топМаксХ = 75; var topMinY = 2;
var topMaxY = 2; вар мин; вар макс;
//request animation frame
(function animate(){
var t = setTimeout(function(){
requestAnimFrame(animate);
var d = render(topMinX,topMaxX,topMinY,topMaxY,true);
},20);
})();
function render(xMin,xMax,yMin,yMax,direction){
if(direction){
min = xMin;
max = xMax
}else{
min = yMin;
max = yMax;
}
if(min<max){
context.beginPath();
if(direction){
context.moveTo(xMin,yMin);
xMin = xMin+2;
alert(xMin);
context.lineTo(xMin,yMax);
}else{
context.moveTo(xMin,yMin);
yMin = yMin+2;
context.lineTo(xMax,yMin);
}
context.lineWidth = 4;
context.stroke();
}
}
Проблема в том, что значение xMin не увеличивается. Он всегда будет предупреждать 5, и я ожидал, что он будет увеличиваться на 2 на каждой итерации. По сути, я просто хочу нарисовать квадрат, поэтому мне не нужны никакие диагональные движения, поэтому я добавил параметр направления.
Я новичок в холсте и прошу ани-рамку, поэтому любая помощь будет более чем полезна.