つまり、基本的に私がやろうとしているのは、追加できる関数のキューを用意することです。これらの関数は、requestAnimationFrame のようにキャンバスに描画することを想定しています。
私が試したこと:
var drawQueue = [];
function animate() {
while (drawQueue.length !== 0) {
drawQueue.shift()();
}
requestAnimationFrame(function () {
animate();
});
}
それで、私は次のようなものを追加しようとしていました:
drawQueue.push(drawthing(0,0,0,0));
これは単に関数を実行し、未定義を配列にプッシュするだけです。これを行うだけで、これはどのように機能しますか:
drawQueue.push(function () {
console.log("derp");
});
また
drawQueue.push(functionName); //with no args
ここでの問題は、呼び出しているほとんどの関数に引数を渡す必要があることです。
私の2回目の試み:
var drawQueue = [];
function animate() {
while (drawQueue.length !== 0) {
var data = drawQueue.shift();
Object.apply(data.func, data.args);
}
requestAnimationFrame(function () {
animate();
});
}
次のような関数をキューに追加します。
drawQueue.push({func: functionName, args: [0,0,0,0]});
しかし、私はそれを機能させることができませんでした.100% Object.apply() を使用する方法と、正確に何をしているのか...
私の質問は、関数キューを作成するにはどうすればよいですか、またはこれを行うためのより良い方法はありますか?