Dieses Beispiel zeigt ein neues Feature des Flash Player 10, das unter dem Namen File Reference runtime access in den Release Notes aufgeführt ist. Damit kann ein Nutzer lokale Dateien direkt in eine Flashanwendung laden und auch Dateien lokal abspeichern. Bis zum Flash Player 9 musste man dafür auf ein serverseitiges Skript (z.B. PHP) zurückgreifen.
Um das Beispiel zu betrachten, wird die aktuelle Betaversion „Astro“ des Flash Player 10 benötigt: File Reference Beispiel anschauen
Bei manchen Bilder scheint es (noch) Probleme zu geben. Also einfach ein bisschen ausprobieren, mit diesem Bild z.B. sollte es problemlos funktionieren. Einfach mit der rechten Maustaste vorher runterladen.
Die Beschreibung des Feature lautet:
File Reference runtime access — Bring users into the experience by letting them load files into your RIA. You can work with the content at runtime and even save it back when you are done through the browse dialog box. Files can be accessed as a byteArray or text using a convenient API in ActionScript without round-tripping to the server. You no longer have to know a server language or have access to a server to load or save files at runtime.
Wie man die lokalen Dateien lädt, habe ich bei bytearray.org in einem Kommentar von Pleh gefunden. Die Funktionieren zum Abspeichern war dann recht einfach herauszufinden. Beim Abspeichern bitte die Dateiendung hinzufügen (.jpg). Der Quellcode des kompletten Beispiels lautet:
[xml]
[/xml]
Link: Beispiel anschauen
Link: Thank you Astro! (bytearray.org)
Hier noch was passendes:
// flash/net/FileReference.as:
package flash.net {
public class FileReference extends flash.events:EventDispatcher {
+ private function _load(dest:ByteArray):void;
+ private function _save(data:ByteArray, defaultFileName:String):void;
+ function load():void;
+ function save(data:*, defaultFileName:String):void;
+ function get data():ByteArray;
}
}
kann man auch PDF’s auf so eine art und weise erzeugen?
Ja, das mit dem PDF sollte möglich sein. Schau dir mal dies an:
http://alivepdf.bytearray.org/
Irgendwas habe ich falsch gemacht… Habe die Flex SDK 3.0.1 installiert, aber FB 3 gibt mir eine Fehlermeldung zum Befehl „myFileRef.save(bytes); “
> 1061: call to a possibly undefined method ’save’…
Bin neu zu Flex, kann mir irgendwer helfen?
Hast du die Änderungen für den Flex Builder durchgeführt?
Siehe hier im ersten Kommentar: http://www.video-flash.de/index/astro-betaversion-des-flash-player-10-steht-zum-download-bereit/
Eigentlich ja aber anscheinend nicht richtig (da war ja auch eine kleinigkeit mit playerglobal.swc die mich irritiert hat (nämlich kein FLEX_SDK/frameworks/libs/player/10/ verzeichnis vorhanden).
Denn zufällig heute steht ja die 2.0.3 sdk zum download und damit hat alles funktioniert (jetzt ist die playerglobal.swc auch da wo Adobe behauptet!).
Dennoch irritiert mich immer noch eine Sache (mit dem SDK) denn meines erachtens nach enthält die AC_OETags.js einen Bug was dazu führt dass 10.0.b218 nicht als gültige Version erkannt wird. Nämlich das ‚b‘ wurde nicht berücksichtigt, was aber schnell zu korrigieren war.
Aber bin ich denn irgendwie blöd (kann gut sein) ?!? Wie hat denn überhaupt jemand bisher geschafft einen Flash 10 app mit Flex generierten HTML wrapper laufen zu lassen? Zumindest nicht ohne AC_OETags.js editieren zu müßen?
Ich benutze normalerweise SWFObject, deshalb kann ich dazu leider nichts sagen …