Adobe Air (wiwobooks.com Release)
{
if(e.clipboard.hasFormat(ClipboardFormats.
BITMAP_FORMAT)) {
NativeDragManager.acceptDragDrop(this);
}
}
private function handleNativeDragDrop(e:NativeDragEvent): void {
var myBitmap:Bitmap = new Bitmap();
myBitmap.bitmapData = e.clipboard.
getData(ClipboardFormats.BITMAP_FORMAT) as BitmapData; imgDrop.source = myBitmap;
}
]]>
Listing 15.4 Beispiel: Drop-Aktion für Bitmaps annehmen
Sie können dieses Beispiel testen, indem Sie in einem Grafikprogramm (z. B. Photoshop oder Fireworks) eine Bitmap-Grafik auswählen und diese hinüber in die Beispielanwendung ziehen.
15.3 Inaktivität des Benutzers erkennen
Stellen Sie sich eine Anwendung vor, mit der Sie live interagieren, z. B. eine Instant-Messaging-Anwendung. Auch wenn es schon gewissermaßen kultig ist, das Kürzel afk (away from keyboard) einzugeben, wenn man sich mal eben eine Tasse Kaffee aus der Küche holen oder den Telefonanruf beantworten muss, so wäre es doch praktisch, wenn die Anwendung erkennen könnte, wann Sie bei der Sache sind und wann nicht. Sie haben es sicher schon erraten: Mit AIR können Sie das bewerkstelligen. In der Ereignisklasse Event sind die Konstanten USER_IDLE (idle ist das englische Wort für untätig) und USER_PRESENT (present ist englisch für anwesend) definiert, die Sie mit passenden Ereignis-Listenern abfangen können.
Die Klasse NativeApplication verfügt über eine dazu passende Eigenschaft idleThreshold , die die Anzahl von Sekunden definiert, die ohne Benutzerinteraktion (mit Tastatur oder Maus) verstreichen muss, damit die AIR-Anwendung dies als Inaktivität ansieht. Der Standardwert für Inaktivität ist in AIR mit 300 Sekunden definiert, also fünf Minuten.
Lösungsweg
1. Registrieren von Ereignis-Listenern für Event.USER_IDLE und Event.USER_ PRESENT
2. Definition der Inaktivitätszeit über die Eigenschaft idleThreshold der NativeApplication -Instanz
3. Quelltext zur Reaktion auf die Ereignisse im jeweiligen Ereignis-Listener
Stolperfallen/Caveats
Wenn Sie den Inaktivitätswert festlegen, achten Sie auf die zulässigen Mindestund Höchstwerte: idleThreshold muss auf eine Ganzzahl zwischen 5 und 86.400 Sekunden (jeweils inklusive) eingestellt werden.
So geht es
Die nachfolgende Flex-AIR-Anwendung definiert eine Inaktivitätszeit von zehn Sekunden, nach deren Ablauf sie das Fenster minimiert und es bei erneuter Benutzeraktivität wiederherstellt:
private var thisApp:NativeApplication = NativeApplication. nativeApplication;
private function init():void {
thisApp.idleThreshold = 10;
thisApp.addEventListener(Event.USER_IDLE,
handleUserIdle);
thisApp.addEventListener(Event.USER_PRESENT,
handleUserPresent);
}
private function handleUserIdle(e:Event):void { stage.nativeWindow.minimize();
}
private function handleUserPresent(e:Event):void { stage.nativeWindow.restore();
}
]]>
Listing 15.5 Beispiel: Auf Inaktivität reagieren
Testen Sie das Beispiel, indem Sie zehn Sekunden lang weder eine Taste drücken noch die Maus bewegen.
PDF-Dateien können in AIR-Anwendungen über die HTML-Engine WebKit eingebunden werden. Allerdings können Sie in AIR-Anwendungen keine PDF-Dateien selbst erstellen, sondern nur anzeigen. Dieses Kapitel zeigt, wie dies geschieht.
16 PDF-Inhalte in AIR
Adobe verdankt einen Großteil seines heutigen Renommees dem Portable Document Format (PDF), das als Dateiformat u.a. für originalgetreue, plattformübergreifende Speicherung von Dokumenten weltweit verbreitet und in mehreren ISO-Normen standardisiert worden ist. Es wirkt daher auf mich etwas befremdlich, dass die Unterstützung für PDF in AIR so bescheiden ausgefallen ist. Wäre es nicht großartig, wenn man die wie auch immer gearteten Inhalte Ihrer AIR-Anwendung nicht nur drucken, sondern als PDF exportieren könnte? Von wegen: Diese Funktion wird von AIR derzeit noch nicht unterstützt. Man kann nur vermuten, dass Adobe die clientseitige Erstellung von PDF-Dateien aus geschäftlichen Interessen nicht anbietet – das würde sich sonst wohl auf die Verkaufszahlen des Produkts Acrobat Professional auswirken. In eine heutige AIR-Anwendung werden PDF-Inhalte mithilfe der HTML-Engine WebKit eingebunden, die allerdings darauf angewiesen ist, dass Adobe Reader der Version 8.1 oder
Weitere Kostenlose Bücher