AIR: Copy und Paste mit der Zwischenablage (Clipboard)

Mit Adobe AIR 1.0 kann man auf die Zwischenablage des Betriebssystems zugreifen. Man kann den Inhalt sowohl auslesen als auch etwas hineinkopieren.

Grundsätzlich kann üblicherweise unterschiedliche Sachen in die Zwischenablage kopieren (z.B. Texte, Bilder, Dateien, etc.) Deshalb gibt es verschiedene Standardformate, die mögliche Inhaltstypen des Clipboards definieren. Zu diesen ClipboardFormats gehören z.B. ClipboardFormats.TEXT_FORMAT (Text), ClipboardFormats.BITMAP_FORMAT (für die BitmapData-Klasse) oder ClipboardFormats.FILE_LIST_FORMAT (für File-Objekte). Wem dies nicht genügt: Es können auch eigene Typen erstellt werden.

Das Beispiel-Programm zu diesem Thema besteht aus zwei Buttons. Der eine kopiert das Textinput-Feld in die Zwischenablage, der andere zeigt den aktuellen Inhalt des Clipboards an. Selbstverständlich kann man mit Ctrl+C (Apfel+C) auch Text aus einer anderen Anwendung kopieren und über den Button „Zwischenablage anzeigen“ in der AIR-Anwendung darstellen.

Wird etwas anderes als Text in die Zwischenablage kopiert (z.B. eine Datei aus dem Explorer/Finder), meldet die Anwendung einen Fehler.

[ad]

AIR Clipboard

Der ActionScript-Code lautet:

[as]
import flash.desktop.Clipboard;
import flash.desktop.ClipboardFormats;

// init text input feld
myTextInput.text = „Dies ist ein Beispieltext“;

/*
* 1) in die Zwischenablage kopieren
*/

// event listener für copybutton
myCopyButton.addEventListener(MouseEvent.CLICK, myCopyButton_CLICK);

function myCopyButton_CLICK(e:MouseEvent):void {

// clipboard löschen
Clipboard.generalClipboard.clear();

// Clipboard befüllen
Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, myTextInput.text ,false);

}

/*
* 2) aus der Zwischenablage lesen
*/

myShowButton.addEventListener(MouseEvent.CLICK, myShowButton_CLICK);

function myShowButton_CLICK(e:MouseEvent):void {

if (Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)) {

// Clipboard in String schreiben
var t:String = String (Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT));

// textfeld aktualisieren
myTextOutput.text = t;

}

else {

// falls etwas anderes als Text in der Zwischenablage > Fehler
myTextOutput.text = „Sorry, falsches Format“;
}

}
[/as]

Download: Quelldatei (.fla)
Link: Copy and Paste

3 Gedanken zu „AIR: Copy und Paste mit der Zwischenablage (Clipboard)“

  1. Hallo, bei Ihrem Scipt bekomme ich denselben Fehler, den ich bei meinem bekomme:

    „ReferenceError: Error #1065: Variable flash.desktop::Clipboard ist nicht definiert.
    at air_fla::MainTimeline/myCopyButton_CLICK()[air_fla.MainTimeline::frame1:19]“

    Was hat es damit auf sich?

  2. Vielleicht ist die Adobe AIR Version bzw. das AIR Plugin für Flash nicht aktuell? Ich habe es gerade nochmal in Flash CS4 getestet, da hat es funktioniert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert