リクエストアニメーション枠を使って線画アニメーションを作ろうと奮闘中です。setInterval 関数を使用している間はすべて正常に動作していましたが、リクエスト アニ フレームがはるかに最適化されており、間隔内のすべての関数をこの方法で記述する必要があることをどこかで読みました。
だからここに私のコードがあります:
var topMinX = 3; var topMaxX = 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 ずつ増加すると予想していました。基本的には四角を描きたいだけなので、斜めの動きは必要ないので、方向パラメータを追加しました。
私はキャンバスに不慣れで、アニフレームをリクエストしているので、どんな助けも役に立ちます.