HTML5 Canvas: Holen Sie sich das Ereignis, wenn das Zeichnen beendet ist
Ich zeichne ein Bild in ein canvas-element. Dann habe ich code das hängt davon ab, bis dieser Prozess abgeschlossen sein. Mein code sieht wie folgt aus:
var myContext = myCanvasElement.getContext('2d'),
myImg = new Image();
myImg.onload = function() {
myContext.drawImage(containerImg, 0, 0, 300, 300);
};
myImg.src = "someImage.png";
So, jetzt würde ich gerne benachrichtigt werden, wenn drawImage ist getan. Ich habe die spec, aber ich konnte nicht finden, dass entweder ein Ereignis oder die Möglichkeit der übergabe einer callback-Funktion. Bisher habe ich nur setzen Sie ein Zeitlimit, aber das ist offensichtlich nicht sehr nachhaltig. Wie löst man dieses problem?
InformationsquelleAutor der Frage elHornair | 2012-06-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie fast alle Javascript-Funktionen, die
drawImage
ist synchroned.h. es werden nur einmal hat es tatsächlich getan, was es tun soll.Sagte, was es ist tun sollwie die meisten anderen DOM-Aufrufe, ist die queue-Listen von Dingen, die neu lackiert werden das nächste mal der browser wird in die event-Schleife.
Gibt es keine Veranstaltung, die Sie kann insbesondere registrieren, um Ihnen sagen, Wann das ist, da zu der Zeit keine solche event-handler genannt werden könnte, das repaint wäre schon passiert.
InformationsquelleAutor der Antwort Alnitak
Jef Claes erklärt es ziemlich gut auf seiner website:
InformationsquelleAutor der Antwort Elisha Mooring
Haben Sie schon ein Ereignis, wenn das Bild geladen, und Sie tun eine Sache (ziehen). Warum nicht ein anderes, und rufen Sie die Funktion, die tun, was Sie wollen, getan, nachdem
drawImage
? Im wahrsten Sinne des Wortes:InformationsquelleAutor der Antwort Simon Sarris