描画される円/パイである画像プリロード アニメーションを構築しています。各「スライス」は totalImages / imagesLoaded です。したがって、4 つの画像があり、2 つが読み込まれた場合、時間の経過とともに 180 まで描画されます。
私は requestAnimFrame を使用していますが、これはうまく機能しており、アニメーションを時間に制限するために deltaTime を設定していますが、数学に頭を悩ませています。私が得ることができる最も近いものは、それがアニメーション化し、本来あるべき場所に近づくことですが、その後、値の増分はますます小さくなります。基本的に完成値に達することはありません。(例として、1 つの画像が読み込まれた場合は 90 度)。
var totalImages = 4;
var imagesLoaded = 1;
var currentArc = 0;
function drawPie(){
var newArc = 360 / totalImages * this.imagesLoaded // Get the value in degrees that we should animate to
var percentage = (isNaN(currentArc / newArc) || !isFinite(currentArc / newArc)) || (currentArc / newArc) > 1 ? 1 : (currentArc / newArc); // Dividing these two numbers sometimes returned NaN or Infinity/-Infinity, so this is a fallback
var easeValue = easeInOutExpo(percentage, 0, newArc, 1);
//This animates continuously (Obviously), because it's just constantly adding to itself:
currentArc += easedValue * this.time.delta;
OR
//This never reaches the full amount, as increments get infinitely smaller
currentArc += (newArc - easedValue) * this.time.delta;
}
function easeInOutExpo(t, b, c, d){
return c*((t=t/d-1)*t*t + 1) + b;
}
私はすべての正しい要素と価値観を持っているように感じます. 私はそれらを間違ってまとめているだけです。
ありとあらゆる助けをいただければ幸いです。