Paket | flash.desktop |
Klasse | public class NativeDragManager |
Vererbung | NativeDragManager Object |
Laufzeitversionen: | AIR 1.0 |
Die folgenden Datentypen können übertragen werden:
- Bitmaps
- Dateien
- Text
- URL-Strings
- Serialisierte Objekte
- Objektverweise (nur gültig in der ursprünglichen Anwendung)
Hinweis: Alle NativeDragManager-Mitglieder sind statisch. Es muss keine Instanz dieser Klasse erstellt werden.
Ein Ziehen-und-Ablegen-Vorgang ist eine Bewegung auf der Benutzeroberfläche, die mit dem Klicken auf ein sichtbares Element beginnt, das dann an eine andere Position gezogen wird. Während der Ziehbewegung durch das AIR-Anwendungsfenster lösen interaktive Objekte in der Anzeigeliste native Ziehereignisse aus. Prozeduren für diese Ereignisse können Methoden der NativeDragManager-Klasse aufrufen, um anzuzeigen, ob das gezogene Element auf einem anderen Objekt abgelegt werden kann. Daraufhin ändert der NativeDragManager den Mauszeiger, sodass der Benutzer informiert wird.
AIR-Profilunterstützung: Diese Funktion wird auf Geräten mit AIR für TV nicht unterstützt. Des Weiteren wird sie nicht auf allen mobilen Geräten unterstützt. Mit der NativeDragManager.isSupported
-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.
Ziehen-Aktionen
Ziehen-und-Ablegen-Bewegungen werden normalerweise für drei Arten von Vorgängen, Aktionen genannt, verwendet. Da die Bedeutung dieser Aktionen vom Anwendungskontext abhängig ist, wird zur Laufzeit kein bestimmtes Verhalten bezüglich der Aktionen erzwungen. Mit der richtigen Implementierung der Aktionen können Sie die Benutzerfreundlichkeit der Anwendung jedoch verbessern.
Mögliche Aktionen sind:
- Kopieren: Es wird eine Kopie der Daten erstellt. Das Original bleibt unverändert. (Beim Ziehen von Objekten innerhalb einer Anwendung sollte darauf geachtet werden, dass das Originalobjekt selbst und nicht ein Verweis auf dieses Objekt kopiert wird.)
- Verschieben: Die Daten werden aus dem ursprünglichen Kontext in den vom Drop-Ziel definierten Kontext verschoben, zum Beispiel wenn ein Element aus einer Liste in eine andere verschoben wird.
- Verknüpfen: Es wird ein Verweis auf die Originaldaten oder eine Verknüpfung damit erstellt. Das Element verbleibt dabei in seinem ursprünglichen Kontext.
Die zulässigen Aktionen können für eine Ziehbewegung festgelegt werden, indem ein allowedActions
-Parameter an den NativeDragManager.doDrag()
-Aufruf übergeben wird, der den Ziehvorgang startet. Wenn kein allowedActions
-Parameter angegeben wird, sind alle Aktionen zulässig. Potenzielle Drop-Ziele können anhand der allowedActions
-Eigenschaft eines NativeDragEvent-Objekts überprüfen, welche Aktionen zulässig sind, und sollten kein Ablegen akzeptieren, das nur inkompatible Aktionen zulässt (dies wird von der Laufzeitumgebung jedoch nicht erzwungen).
Wenn ein Ablageziel nur eine einzelne Aktion implementiert, kann das Objekt die dropAction
-Eigenschaft von NativeDragManager sowohl in den Prozeduren für nativeDragEnter
- als auch für nativeDragOver
-Ereignisse setzen. Wird die Eigenschaft vor dem Ablegen gesetzt, kann der Ziehmanager den Mauszeiger aktualisieren, sodass die unterstützte Aktion angegeben wird und Benutzer davon abgehalten werden, mit Zusatztasten eine nicht unterstützte Aktion zu wählen. Handelt es sich bei der festgelegten Aktion nicht um eine der folgenden, so ist das Ablegen nicht erlaubt, selbst wenn das Ziel die acceptDrop()
-Methode aufruft.
Wenn das Ablegen akzeptiert wird, sollte ein potenzielles Ablageziel die gewählte Aktion anzeigen, indem die NativeDragManager.dropAction
-Eigenschaft als Antwort auf das nativeDragDrop
-Ereignis gesetzt wird. Diese Aktion wird im nativeDragComplete
-Ereignis an das auslösende Anzeigeobjekt gemeldet. Wenn von einem Ablageziel keine Aktion festgelegt wurde, wird aus der Liste der zulässigen Aktionen in der folgenden Reihenfolge eine Standardaktion gewählt: Kopieren, Verschieben, Verknüpfen. Das auslösende Objekt ist für die Aktualisierung des internen Status als Folge der gewählte Aktion zuständig.
Stringkonstanten für die Aktionsnamen sind in der NativeDragActions-Klasse definiert.
Reihenfolge der Ereignisse
Die Ziehbewegung beginnt mit dem Aufruf der NativeDragManager.doDrag()
-Methode innerhalb einer mouseDown
- oder mouseMove
-Ereignisprozedur und wird in Reaktion auf Benutzeraktionen in der folgenden Ereignisreihenfolge fortgesetzt:
-
nativeDragStart
-Ereignis: WennNativeDragManager.doDrag()
aufgerufen wird, wird das als Parameter an die Methode übergebene interaktive Objekt zum Initiatorobjekt und löst einnativeDragStart
-Ereignis aus. -
nativeDragUpdate
-Ereignis: Während des Ziehens löst das Initiatorobjekt kontinuierlichnativeDragUpdate
-Ereignisse aus. -
nativeDragEnter
-,nativeDragOver
-Ereignisse: Wenn eine Ziehbewegung über ein interaktives Objekt verläuft, löst dieses Objekt einnativeDragEnter
-Ereignis aus. Verweilt die Ziehbewegung über dem interaktiven Objekt, löst dieses kontinuierlichnativeDragOver
-Ereignisse aus. Als Antwort auf jedes dieser Ereignisse sollte ein Objekt, das ein potenzielles Drop-Ziel ist, die Eigenschaften des Ereignisobjekts überprüfen, um festzustellen, ob das Ablegen akzeptiert werden kann. Wenn das Datenformat und die zulässigen Aktionen geeignet sind, muss die Ereignisprozedur für diese EreignisseNativeDragManager.acceptDrop()
aufrufen und dabei einen Verweis auf das Anzeigeobjekt übergeben, das als Ablageziel dient (normalerweise das Objekt, das dasnativeDragEnter
- odernativeDragEnter
-Ereignis ausgelöst hat). Der Benutzer kann das gezogene Element auf dem Ziel ablegen. -
nativeDragExit
-Ereignis: Wenn eine Ziehbewegung über ein interaktives Objekt hinaus verläuft, löst das Objekt einnativeDragExit
-Ereignis aus. Wenn das Objekt von einem früheren Aufruf derNativeDragManager.acceptDrop()
-Methode als Ablageziel bestimmt wurde, ist dieser Aufruf nicht mehr gültig undacceptDrop()
muss erneut aufgerufen werden, wenn die Bewegung wieder über das interaktive Objekt verläuft. -
nativeDragDrop
-Ereignis: Das Zielanzeigeobjekt löst einnativeDragDrop
-Ereignis aus, wenn der Benutzer die Maustaste über dem Objekt loslässt. Die Prozedur für dieses Ereignis kann auf die Daten in dertransferable
-Eigenschaft des Ereignisobjekts zugreifen und sollte dieNativeDragManager.dropAction
-Eigenschaft setzen, um anzugeben, welche Aktion vom Initiatorobjekt ausgeführt werden sollte. -
nativeDragComplete
: Wenn der Benutzer am Ende einer Ziehbewegung die Maustaste loslässt, löst das Initiatorobjekt einnativeDragComplete
-Ereignis aus (unabhängig davon, ob das Element tatsächlich abgelegt wird oder nicht). Die Prozedur für dieses Ereignis kann diedropAction
-Eigenschaft des Ereignisobjekts überprüfen, um festzustellen, welche Änderungen am internen Datenstatus vorgenommen werden sollten, zum Beispiel das Entfernen eines Elements aus einer Liste, nachdem es in eine andere Liste gezogen wurdet. WenndropAction
die EinstellungNativeDragActions.NONE
hat, wurde das gezogene Element nicht auf einem geeigneten Ziel abgelegt.
Bewegungen zwischen Anwendungen
Wenn ein Element aus einer Nicht-AIR-Anwendung in ein AIR-Anwendungsfenster gezogen wird, gibt es kein Initiatorobjekt, das die Ereignisse nativeDragStart
oder nativeDragComplete
auslösen könnte. Davon abgesehen folgen die während der Bewegung ausgelösten Ereignisse demselben Muster wie bei einer Bewegung, die innerhalb derselben AIR-Anwendung stattfindet.
Wenn ein Element aus einem AIR-Anwendungsfenster hinausgezogen wird, gibt es kein Zielobjekt, das die Ereignisse nativeDragEnter
, nativeDragOver
oder nativeDragDrop
auslösen könnte. Das Initiatorobjekt löst dennoch ein nativeDragComplete
-Ereignis aus, das die vom nativen Betriebssystem festgelegte Ziehaktion meldet (oder none
, falls das Ablegen des Elements nicht akzeptiert wurde).
Wenn ein Element aus einer AIR-Anwendung in eine andere gezogen wird, lösen die Initiator- und Zielanzeigeobjekte wie gewohnt Ereignisse in den jeweiligen Anwendungen aus.
Übertragen von Informationen
Die Daten, die beim Ziehen und Ablegen übertragen werden, sind in einem Clipboard-Objekt enthalten. Dieses Datenobjekt wird dem Ziehvorgang mit der NativeDragManager.doDrag()
-Methode hinzugefügt, die die Ziehbewegung startet. Potenzielle Ablageziele können auf das Clipboard-Objekt über die clipboard
-Eigenschaft des nativen Ziehereignisobjekts zugreifen. Nachdem ein Ziehvorgang begonnen hat, kann nur über die Ereignisprozedur des NativeDragEvent auf das Clipboard-Objekt zugegriffen werden. Bei allen anderen Zugriffsversuchen auf das Objekt kommt es zu einem Laufzeitfehler.
Sicherheitserwägungen
Die Sicherheits-Sandboxen des Initiator- und des potenziellen Zielobjekts bestimmen, wie auf die gezogenen Daten zugegriffen werden kann. Wenn sich beide Objekte in derselben Sandbox befinden, kann von jedem NativeDragEvent-Objekt auf die Daten zugegriffen werden. Befinden sich die Initiator- und Zielobjekte dagegen in unterschiedlichen Sandboxen, kann nur in der Ziel-Sandbox innerhalb der Ereignisprozedur für das nativeDragDrop
-Ereignis auf die Daten zugegriffen werden. Andere native Ziehereignisprozeduren können weiterhin auf das in der clipboard
-Eigenschaft referenzierte Clipboard-Objekt zugreifen und ermitteln, welche Datenformate verfügbar sind. Das Aufrufen der clipboard.getData()
-Methode löst jedoch einen Sicherheitsfehler aus.
Verwandte API-Elemente
flash.desktop.NativeDragActions
flash.desktop.NativeDragOptions
flash.desktop.Clipboard
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
dragInitiator : InteractiveObject [statisch] [schreibgeschützt]
Das interaktive Objekt, das an den NativeDragManager.doDrag()-Aufruf übergeben wird, der den Ziehvorgang eingeleitet hat. | NativeDragManager | ||
dropAction : String [statisch]
Die vom Drop-Ziel angegebene Ziehen-Aktion. | NativeDragManager | ||
isDragging : Boolean [statisch] [schreibgeschützt]
Meldet, ob zurzeit ein Ziehvorgang stattfindet. | NativeDragManager | ||
isSupported : Boolean [statisch] [schreibgeschützt]
Die isSupported-Eigenschaft hat den Wert „true“, wenn die NativeDragManager-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert „false“. | NativeDragManager |
Methode | Definiert von | ||
---|---|---|---|
[statisch]
Informiert das NativeDragManager-Objekt, dass das angegebene interaktive Zielobjekt das Ablegen entsprechend des aktuellen Ziehereignisses akzeptiert. | NativeDragManager | ||
doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void [statisch]
Startet einen Ziehen-und-Ablegen-Vorgang. | NativeDragManager | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
dragInitiator | Eigenschaft |
dragInitiator:InteractiveObject
[schreibgeschützt] Laufzeitversionen: | AIR 1.0 |
Das interaktive Objekt, das an den NativeDragManager.doDrag()
-Aufruf übergeben wird, der den Ziehvorgang eingeleitet hat.
Implementierung
public static function get dragInitiator():InteractiveObject
dropAction | Eigenschaft |
dropAction:String
Laufzeitversionen: | AIR 1.0 |
Die vom Drop-Ziel angegebene Ziehen-Aktion.
Die dropAction
-Eigenschaft sollte in der Prozedur für das nativeDragDrop
-Ereignis festgelegt werden. Wird die dropAction
-Eigenschaft nicht vor nativeDragComplete
eingestellt, legt NativeDragManager den Wert fest anhand der ersten erlaubten Aktion der folgenden Liste: Kopieren, Verschieben oder Verknüpfen (in dieser Reihenfolge).
Implementierung
public static function get dropAction():String
public static function set dropAction(value:String):void
Verwandte API-Elemente
isDragging | Eigenschaft |
isSupported | Eigenschaft |
isSupported:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2 |
Die isSupported
-Eigenschaft hat den Wert true
, wenn die NativeDragManager-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert false
.
Implementierung
public static function get isSupported():Boolean
acceptDragDrop | () | Methode |
public static function acceptDragDrop(target:InteractiveObject):void
Laufzeitversionen: | AIR 1.0 |
Informiert das NativeDragManager-Objekt, dass das angegebene interaktive Zielobjekt das Ablegen entsprechend des aktuellen Ziehereignisses akzeptiert.
Diese Methode sollte nur aufgerufen werden, wenn es im angegebenen Zielobjekt eine nativeDragDrop
-Prozedur gibt, die mindestens eines der Datenformate des gezogenen Elements und mindestens eine der zulässigen Aktionen verarbeiten kann.
Diese Funktion kann nur innerhalb einer nativeDragEnter
- oder nativeDragOver
-Ereignisprozedur aufgerufen werden.
Parameter
target:InteractiveObject |
doDrag | () | Methode |
public static function doDrag(dragInitiator:InteractiveObject, clipboard:Clipboard, dragImage:BitmapData = null, offset:Point = null, allowedActions:NativeDragOptions = null):void
Laufzeitversionen: | AIR 1.0 |
Startet einen Ziehen-und-Ablegen-Vorgang.
So starten Sie einen Ziehvorgang:
- Erstellen Sie ein neues Clipboard-Objekt.
- Fügen Sie die zu übertragenden Daten in einem oder mehreren Formaten hinzu.
- Erstellen Sie optional ein BitmapData-Objekt, das beim Ziehen als Proxybild dient.
- Erstellen Sie optional ein NativeDragOptions-Objekt, um die für diesen Vorgang zulässigen Aktionen zu beschränken. (Wenn der
allowedActions
-Parameter den Wertnull
hat, sind alle Aktionen zulässig.) - Rufen Sie
NativeDragManager.doDrag()
auf.
Das Initiatorobjekt löst ein nativeDragStart
-Ereignis aus, nachdem diese Methode aufgerufen wurde, nativeDragStart
-Ereignisse, während das Element gezogen wird, und ein nativeDragComplete
-Ereignis, wenn der Benutzer die Maustaste loslässt und die Ziehbewegung damit beendet. Die Prozedur für das nativeDragComplete
-Ereignis kann die dropAction
-Eigenschaft des Ereignisses überprüfen, um festzustellen, ob der Ziehen-und-Ablegen-Vorgang erfolgreich abgeschlossen wurde. Wenn dropAction
die Einstellung NativeDragActions.NONE
hat, wurde das gezogene Element nicht auf einem geeigneten Ziel abgelegt.
Diese Methode kann nur von einer mouseDown
- oder mouseMove
-Ereignisprozedur aufgerufen werden. (Erfolgt der Aufruf als Antwort auf ein mouseMove
-Ereignis, muss die Maustaste gedrückt sein.)
Parameter
dragInitiator:InteractiveObject — Normalerweise das Objekt, bei dem die Ziehbewegung begann. Empfängt die nativeDragStart - und nativeDragComplete -Ereignisse.
| |
clipboard:Clipboard — Das Containerobjekt für die gezogenen Daten.
| |
dragImage:BitmapData (default = null ) — Ein optionales Proxybild, das während der Ziehbewegung unter dem Mauszeiger angezeigt wird. Bei der Einstellung null wird kein Bild angezeigt.
| |
offset:Point (default = null ) — Der Versatz zwischen dem Maus-Hotspot und der linken oberen Ecke des Ziehbilds. Bei negativen Koordinaten wird das Bild in Relation zum Hotspot nach links oben verschoben. Bei der Einstellung null ist die linke obere Ecke des Ziehbilds beim Maus-Hotspot platziert.
| |
allowedActions:NativeDragOptions (default = null ) — Beschränkt die für diesen Vorgang zulässigen Ziehen-und-Ablegen-Aktionen. Bei der Einstellung null sind alle Aktionen zulässig.
|
Verwandte API-Elemente
Tue Jun 12 2018, 10:04 AM Z