Irgendwie habe ich meine Nachforschungen und fand heraus, Javascript ist single threaded!. Ich habe versucht, herauszufinden, wie man Animation über for loop
in Javascript machen.JavaScript für Schleife Problem beim Zeichnen Objekt
Das habe ich bisher gemacht. Ich versuche, ein Objekt auf einer Leinwand mit Javascript zu zeichnen. Es läuft die Schleife es geht nicht Schritt für Schritt. Es wird nur die Schleife ausgeführt und einmal statt 10 Mal gezeichnet und ignoriert die Timeout-Funktion. .
In einer einzigen Instanz, es zog (P/S Ignorieren Sie die Ursache mehrere Version ich es testete so entfernte ich die context.clearRect(0, 0, context.canvas.width, context.canvas.height);
:
JS:
// down button click
down.onclick = function() {
if (!imgLoaded) return;
flag=false;
setTimeout(function() {
for(var i = 0; i < 15 ; i++) {
posY += 10;
context.drawImage(img, posX, posY);
}}, 9);
// call next step
setInterval hat auch kein Glück :( – FreedomPride
Wenn Sie gerade settimeout durch setInterval in Ihrem Code ersetzt haben, wird das sicher nicht besser funktionieren (wiederholt die 15 Iterationen alle 9ms). Bitte lesen Sie die setTimeout setInterval Dokumentation und Window.requestAnimationFrame Beispiele. –