Ich habe einen Drag & Drop-Handler in meiner Flex-Anwendung. Der Drag-Proxy oder das "Geisterbild", das beim Ziehen angezeigt wird, muss vor dem Ziehen geladen werden, was einige Zeit in Anspruch nimmt. Wie kann ich es sofort laden oder laden? Eine Lösung besteht darin, das Bild zu duplizieren, aber soweit ich weiß, können Bildobjekte nicht dupliziert werden, ohne eine weitere Variable zu erstellen, die noch etwas Zeit zum Laden benötigt.Flex: Dupliziere Instanz eines Bildes
Vielleicht dieser Code wird es besser illustrieren:
public function DragApp (e : MouseEvent) : void {
var dragInitiator : Image = e.currentTarget as Image;
var dragSource : DragSource = new DragSource();
var dragProxy : Image = new Image();
dragProxy.source = e.currentTarget.source; // Won't work unless image is embedded
dragProxy.load (e.currentTarget.source); // Must load
setTimeout (DragManager.doDrag, 350, dragInitiator, dragSource, e, dragProxy);
}
Vielen Dank! Dies löst mein Problem! Aber warum erscheint das Bild, wenn ich den DoDrag in ein Timeout setze? Ich dachte, es müsste eine weitere Instanz des Bildes erstellen und es zuerst laden. Passt das Bild seine Breite und Höhe an einem bestimmten Punkt automatisch an? – Aethex