Adobe Air (wiwobooks.com Release)
anderenfalls eine serialisierte Kopie. Es wird nur eine serialisierte Kopie zurückgegeben, falls möglich, anderenfalls der Wert 0 . Es wird eine serialisierte Kopie zurückgegeben, falls möglich, anderenfalls eine Referenz.
Tabelle 15.2 Transfermodi für Objekte der Zwischenablage
Lösungsweg
1. Aufruf der Clipboard.generalClipboard -Instanzmethode hasFormat() zur Prüfung, ob das gewünschte Datenformat in der Zwischenablage vorhanden ist.
2. Aufruf der Clipboard.generalClipboard -Instanzmethode getData() zum
Einlesen der Daten aus der Zwischenablage. Parameter:
format
Auszulesendes Format des Inhalts
transferMode
Transfermodus des Inhalts (Kopie oder Referenz)
So geht es
private var myObject:Object = {name: "einfaches Objekt", data: 3.1415926548};
private function copyText():void {
Clipboard.generalClipboard.clear();
Clipboard.generalClipboard.setData(ClipboardFormats.
TEXT_FORMAT, taSource.text);
Clipboard.generalClipboard.setData(ClipboardFormats.
FILE_LIST_FORMAT, File.applicationDirectory.getDirectoryListing()); Clipboard.generalClipboard.setData("myCustomFormat", myObject, true);
}
private function pasteText():void {
if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.
TEXT_FORMAT)) {
taDestination.text += Clipboard.generalClipboard. getData(ClipboardFormats.TEXT_FORMAT) + "\n";
}
if(Clipboard.generalClipboard.hasFormat(ClipboardFormats. FILE_LIST_FORMAT)) {
var files:Array = Clipboard.generalClipboard. getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
if(null !== files) {
taDestination.text + = "Das Anwendungsverzeichnis enthält:\n";
for(var i:uint = 0; i < files.length; i++) { taDestination.text += files[i].name + "\n"; }
}
}
if(Clipboard.generalClipboard.
hasFormat("myCustomFormat")) {
var pasteObj:Object = Clipboard.generalClipboard. getData("myCustomFormat");
taDestination.text += "Objekt '" + pasteObj.name + "' liefert folgende Daten:\n";
taDestination.text += pasteObj.data.toString(); }
}
]]>
Listing 15.2 Beispiel: Aus Zwischenablage einfügen
15.2 Drag&Drop
Nicht jeder Benutzer arbeitet gerne mit Copy&Paste, sondern nimmt die Maus zu Hilfe, um Daten oder Objekte zwischen Anwendungen hin- und herzubewegen. Es gehört bereits zum Funktionsumfang des Flash Players, innerhalb einer FlashPlattform-Anwendung für das Web Drag & Drop-Interaktionen zu unterstützen. AIR führt diese Möglichkeit zudem aus der Anwendung heraus und bedient sich hierzu entsprechender Mechanismen des jeweiligen Betriebssystems. Und so wie Sie es gewohnt sind, Lesezeichen aus dem Browser auf die Arbeitsfläche zu ziehen oder eine Textdatei in einen Texteditor, um diese zu öffnen, so können Sie auch Ihre AIR-Anwendung so einrichten, dass Sie Objekte und/oder Daten von bzw. nach außerhalb der Anwendung akzeptiert.
15.2.1 Grundlegende Prinzipien
Drag & Drop in AIR entspricht inhaltlich gesehen einem von drei Vorgängen der Interaktion mit Ihrer Anwendung: Verschieben, Kopieren oder Verknüpfen – ganz wie Sie es im Kontext des Betriebssystems gewohnt sind. Dabei macht AIR für die Umsetzung des Drag & Drop-Verhaltens von Clipboard -Objekten Gebrauch. Daher sind die Formate der Drag & Drop-Objekte identisch mit den Formaten für Copy&Paste-Operationen. Sie finden eine Übersicht über diese Formate in Tabelle 15.1. Die hierbei verwendeten Instanzen Clipboard -Klasse entsprechen jedoch nicht der Systemzwischenablage: Wie Sie sich erinnern werden, ist diese als Clipboard -Instanz in der Klasseneigenschaft Clipboard.generalClipboard gespeichert. Der Drag & Drop-Vorgang ist in drei Phasen aufgeteilt: Zuerst beginnt der Benutzer damit, das zu ziehende Objekt (bzw. dessen Repräsentation auf dem Bildschirm) mit der Maus auszuwählen, indem er daraufklickt. In der zweiten Phase zieht er das ausgewählte Objekt bei gedrückter Maustaste über den Bildschirm. In der dritten und letzten Phase schließlich wird die Maustaste losgelassen und das
Weitere Kostenlose Bücher