| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2006
Beiträge: 31
| fileStream.write für .jpg
Hi, also ich arbeite nach wie vor an einer AIR-Geschichte. Der User läd ein Bild in die Anwendung und ich möchte dieses Bild automatisch im Hintergrund in einem bestimmten Ordner abspeichern, weil ich später noch mal darauf zugreifen will. Hab grad gelernt wie ich per FileStream eine datei im Hintergrund speichern kann: import flash.filesystem.FileStream; import flash.events.Event; import flash.filesystem.File; import flash.errors.IOError; var fileStream:FileStream; fileStream = new FileStream(); fileStream.addEventListener(Event.CLOSE, fileCloseHandler); fileStream.addEventListener(IOErrorEvent.IO_ERROR, fileIOError); var writeFile:File; writeFile = File.documentsDirectory.resolvePath('AIR/test.txt'); fileStream.openAsync(writeFile, FileMode.WRITE); fileStream.writeUTFBytes('Hallo Welt'); fileStream.close(); function fileIOError(event:IOErrorEvent):void { trace ("FEHLER"); } function fileCloseHandler(event:Event):void { trace ("FERTIG"); } Soweit so gut. Die Beispiele die ich finde "generieren" immer .txt Dateinen, die in fileStream.writeUTFBytes('Hallo Welt'); mit Inhalt gefüllt werden. Nun hab ich 2 Probleme; 1) soweit ich es verstanden habe, muss ich für die Erstellung eines .jpg statt "writeUTFBytes" etwas anderes nehmen - denke "writeObject" wäre richtig, bin mir aber nicht sicher. Kann das nicht testen, weil ich 2) nicht weiss wie ich mein geladenes Bild statt "Hallo Welt" als Inhalt der zu erzeugenden Datei "schreibe". Hier mal mein bisheriger Code. Wenn ich mich nicht irre ist der rote Teil das Problem... var laden:Loader = new Loader(); var url:URLRequest = new URLRequest("pic.jpg"); laden.load(url); laden.contentLoaderInfo.addEventListener(Event.COM PLETE, fertig); addChild(laden); function fertig(evt:Event) { trace ("geladen"); } import flash.filesystem.FileStream; import flash.filesystem.File; import flash.events.Event; import flash.filesystem.File; import flash.errors.IOError; var diesspeichern:File = new File(); diesspeichern = laden.data; var fileStream:FileStream; fileStream = new FileStream(); fileStream.addEventListener(Event.CLOSE, fileCloseHandler); fileStream.addEventListener(IOErrorEvent.IO_ERROR, fileIOError); var writeFile:File; writeFile = File.documentsDirectory.resolvePath('AIR/pic.jpg'); fileStream.openAsync(writeFile, FileMode.WRITE); fileStream.writeObject(diesspeichern); fileStream.close(); function fileIOError(event:IOErrorEvent):void { trace ("FEHLER"); } function fileCloseHandler(event:Event):void { trace ("FERTIG"); } Hoffe es kann mir jemand weiterhelfen :-) !!! Jan |
| | |
| | #2 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Hallo Jankee! Vorab: Das ist jetzt schon der 4 Thread, denn Du zu einem neuen aspekt desselben Problems eröffnest. Damit zwingst Du die Anderen immer wieder bei 0 anzufangen oder sich mühsam durch Deine Beitrags-Historie zu wühlen. Sinnvoller und produktiver wäre es, in einem einzelnen Thread ein Problem bis zur Lösung zu begleiten und so für alle die bisherigen Ansätze und Probleme offen zu legen. Zum Problem: Die File-Klasse kann keine Daten enthalten, weshalb Du auch nicht einfach den Inhalt Deines Loaders drin speichern kannst. Ich verstehe nicht ganz, warum Du eine Datei lokal kopieren möchtest - nur um sie später nochmal verwenden zukönnen? Behalt sie doch einfach im Cache!
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (20-02-2011 um 15:57 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2006
Beiträge: 31
| danke schon mal
Hi Martin. erst mal danke... werd mich gleich mal dran setzen und versuchen deinen Input einzubauen. Ich dachte es ist angenehmer wenn sich die Leute nicht durch meine "alten" Probleme durchwälzen müssen (die ja teilweise gelöst sind) um mir bei meinem derzeitigen Problem zu helfen - deshalb immer ein neuies Thema... Das mit dem "im Cache" behalten geht nicht weil ich immer wieder - bei späteren Sessions auch auf die Bilder (aus dem bestimmten Ordner) zugreifen möchte. Aber 1000 Dank für den neuen Input! Gruss Jan |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| copyTo oder FileStream?! | LeSmou | Adobe AIR | 0 | 02-09-2010 14:11 |
| FileStream Event Complete geht nicht | Sebbal | Adobe AIR | 0 | 15-03-2010 13:33 |
| URLLoader wartet auf FileStream? | ghost23 | Adobe AIR | 4 | 19-11-2008 13:19 |
| FileStream / Netstream | gigo | Adobe AIR | 2 | 12-02-2008 16:14 |
| write | ReNNeR | Flash MX | 1 | 20-05-2002 11:53 |