Im vorigen Beispiel wurde vorgestellt, wie man mit Adobe AIR auf Dateien per Drag-and-Drop zugreift. Nun ein weiteres Beispiel, das stattdessen den Dialog "Datei öffnen" verwendet.
Flash – und somit AIR – hat mit File.browseForOpen
eine Funktion, die den nativen Öffnen-Dialog des jeweiligen Betriebssysten startet. So lassen sich Dateien auf die Weise öffnen, wie es der Nutzer gewohnt ist. Die zur Verfügung stehende Dateiauswahl kann durch einen FileFilter
anhand der Dateiendungen eingeschränkt werden.
Das Beispielprogramm hat einen Button, mit dem der "File open" Dialog aufgerufen wird. Der Namen der selektierten Datei wird nach der Auswahl in einem Textfeld ausgegeben.
Der Code der Anwendung lautet:
-
span style="color: #808080; font-style: italic;">// neues File
-
// Filter für Dateiendungen
-
"Text", "*.txt;*.xml""Bilder", "*.jpg; *.png"// Öffnen-Dialog von Flash aufrufen
-
"Bitte wählen Sie eine Datei"// event listener hinzufügen
-
//(funktion wird aufgerufen, wenn datei ausgewählt wurde)
-
// event listener für Öffnen-Button
-
// file in Variable abspeichern
-
// Dateinamen anzeigen
-
Download: Quelldateien
Link: flash.filesystem.File (Livedocs / AS3 Language Reference)
7 Kommentare zum Beitrag "AIR: „Datei öffnen“-Dialog des Betriebsystems verwenden"
[…] 3: Badges für Adobe AIR Tutorial 2: AIR: “Datei öffnen”-Dialog des Betriebsystems verwenden Tutorial 1: Adobe AIR: Drag and Drop mit […]
Probleme mit Adobe Flash Player!
Wie soll ich mit AIR-datei schliessen?
Hallo, nur eine Nebenbemerkung:
Wer von euch zusätzlich ein Flugsimulatorfan ist , dem sei gesagt, daß diese .air Dateien seit langem von Microsoft in ihren FS benutzt werden.
Somit schießt dieses „wunderbare“ Adobe Progi alle Flusis ab.
Toll, oder?
Harald Klose
Hi,
super Tut, aber was muss ich für ein FileFilter anlegen, wenn ich Ordner auswählen möchte und keine Dateien?
".;" und "/" gehen nicht.
Grüße
Gute Frage! Weiß ich leider aber auch nicht. Wenn du etwas herausfindest, gib Bescheid.
Hi,
du brauchst keinen Filter zu setzen um einen Ordner auszuwählen. Es gibt dafür eine eigene Methode in der File Class, "browseForDirectory()". Die Methode ist asynchron, d.h. also du musst vorher ein Event abfangen.
Hier ein keines Beispiel zur Verdeutlichung;)
var file:File = new File();
file.addEventListener(Event.SELECT, dirSelected);
file.browseForDirectory("Select a directory");
function dirSelected(e:Event):void {
trace(file.nativePath);
}
Eventuell ist es genau das was du suchst.
Hoffe konnte behilflich sein.
Gruß
Hi Falko,
vielen Dank für den Hinweis!
Schreibe einen Kommentar