CancelAsyncDraw(id)
Wenn das asynchrone Zeichnungsobjekt, welches Sie stoppen möchten,
einer Ebene zugeordnet ist, dann ruft CancelAsyncDraw()
den
Abschlußcode für Ihr Zeichnungsobjekt nicht auf. Zum Beispiel,
wenn Sie eine Ebene mit einem asynchronen Effekt entfernen
möchten (das heißt Sie haben das asynchrone Zeichnungsobjekt mit
dem Befehl RemoveLayerFX() aufgerufen), dann wird die Ebene
nicht entfernt werden, wenn Sie den Befehl CancelAsyncDraw()
benutzen. Das gleiche gilt für HideLayerFX() (Ebene wird nicht
ausgeblendet werden, wenn Sie das asynchrone Zeichnungsobjekt
auf halbem Wege abbrechen) und ShowLayerFX() (Ebene wird nicht
angezeigt werden, wenn Sie das asynchrone Zeichnungsobjekt abbrechen).
Wenn Sie dieses Verhalten nicht wünschen, verwenden Sie stattdessen FinishAsyncDraw(). FinishAsyncDraw() wird zuerst der Abschlusscode für das asynchronen Zeichnungsobjekt aufrufen und dann wird es aus dem Speicher entfernt. Dies bedeutet, dass wenn Sie FinishAsyncDraw() bei einem mit RemoveLayerFX() erstellten asynchronen Zeichnungsobjekt ausführen, wird die Ebene entfernt, auch wenn der Effekt noch nicht beendet ist. FinishAsyncDraw() wird zum letzten Einzelbild in der Warteschlange springen, den Abschlusscode aufrufen (das heißt die Ebene wird entfernt, ausgeblendet oder angezeigt) und das asynchrone Zeichnungsobjekt wird aus dem Speicher gelöscht.
Bitte beachten Sie, dass es überhaupt keinen Unterschied zwischen
CancelAsyncDraw()
und FinishAsyncDraw() gibt, wenn Ebenen deaktiviert
sind. Bei deaktivierten Ebenen sollten Sie aber immer CancelAsyncDraw()
verwenden.