Ich habe diese komplizierte Schleife, die verschiedene Standbilder von dem, was ich in einem Canvas-Element anzeigen möchte, berechnet. Jedes Mal, wenn der Rahmen berechnet wird, wird er angezeigt, ich rufe einen Timer an und warte bis ich ihn lösche und dann werden die nächsten Rahmen angezeigt und so weiter.Zeichnen aufeinanderfolgender Frames zu einem HTML5 Canvas zeigt nur das letzte Frame
drawing(transform(alone, Box, canvasx.width, canvasx.height), false, "00f", canvasx);
drawing(transform(Lines, Box, canvasx.width, canvasx.height), false, "ff0000", canvasx);
var date = new Date();
var curDate = null;
do {
curDate = new Date();
}
while (curDate - date < 550);
if (alone.length > 0) {
canvasx.width = canvasx.width;
}
wenn ich einen Haltepunkt in var Datum Spiel setzen, und drücken Sie jedes Mal spielen, bekommt jeder einzelner Frame angezeigt, aber wenn ich es durch die Leinwand laufen lassen ist leer, während es läuft und am Ende zeigt es die letzte Rahmen.
jetzt, wenn ich die canvasx.width = canvasx.width;
löschen, bekomme ich immer noch das gleiche Verhalten nur offensichtlich am Ende bekomme ich alle Frames übereinander gezeichnet.
Offensichtlich ist es keine Animation, also kann ich Zeichnung in einem setinterval nicht nennen.
hat jemand eine Idee warum;
die Sache ist, dass es eine while-Schleife, die jedes Mal die neuen Ergebnisse berechnet, habe ich versucht, die Ergebnisse in eine Funktion wie die Sie geschrieben, aber offensichtlich vergeblich, da die While-Schleife nicht fertig wird, die Leinwand nicht aktualisiert. Ich habe eine dumme Lösung gefunden, um zu zeigen, was ich wollte, aber es funktioniert nur auf Chrom. http://www.elasticrash.info/demos/003/index.html seit ich pop und closing modals – elasticrash
oh ich markierte es als richtig, weil ich verstand, was ich tun muss. – elasticrash
Als Nebenbemerkung habe ich auch Fälle in Safari OS X gesehen, wo nur die Größe des Canvas nicht vollständig gelöscht wird; 'clearRect' ist definitiv die bessere Wahl. – Phrogz