15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Arbeiten mit dem Dateisystem<br />

var myFile:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");<br />

var myFileStream:FileStream = new FileStream();<br />

myFileStream.openAsync(myFile, FileMode.WRITE);<br />

myFileStream.writeUTFBytes("hello");<br />

myFileStream.writeUTFBytes("world");<br />

myFileStream.addEventListener(Event.CLOSE, closeHandler);<br />

myFileStream.close();<br />

trace("started.");<br />

closeHandler(event:Event):void<br />

{<br />

trace("finished.");<br />

}<br />

Die Trace-Ausgabe für diesen Code ist folgendermaßen:<br />

started.<br />

finished.<br />

Sie können den position-Wert unmittelbar nach dem Aufruf einer read- oder write-Methode angeben (oder zu<br />

einem beliebigen anderen Zeitpunkt) und die nächste read- oder write-Operation wird ab dieser Position ausgeführt.<br />

Beachten Sie beispielsweise, dass der folgende Code die position-Eigenschaft unmittelbar nach dem Aufruf einer<br />

writeBytes()-Operation gesetzt wird, und zwar auf den betreffenden Wert (300), sogar nachdem die write-<br />

Operation abgeschlossen ist:<br />

var myFile:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");<br />

var myFileStream:FileStream = new FileStream();<br />

myFileStream.openAsync(myFile, FileMode.UPDATE);<br />

myFileStream.position = 4000;<br />

trace(myFileStream.position); // 4000<br />

myFileStream.writeBytes(myByteArray, 0, 200);<br />

myFileStream.position = 300;<br />

trace(myFileStream.position); // 300<br />

Der Lesepuffer und die bytesAvailable-Eigenschaft<br />

Adobe AIR 1.0 und höher<br />

Wenn ein FileStream-Objekt mit read-Eigenschaften (eines, in dem der Parameter fileMode der open()- oder<br />

openAsync()-Methode auf READ oder UPDATE gesetzt wurde) geöffnet wird, speichert die Laufzeitumgebung die<br />

Daten in einem internen Puffer. Das FileStream-Objekt beginnt, die Daten in den Puffer zu lesen, sobald Sie die Datei<br />

öffnen (durch Aufruf der open()- oder openAsync()-Methode des FileStream-Objekts).<br />

Bei einer für synchrone Operationen (mithilfe der open()-Methode) geöffneten Datei können Sie den position-<br />

Zeiger auf jede beliebige Position (innerhalb der Dateigrenzen) setzen und eine beliebige Datenmenge (innerhalb der<br />

Dateigrenzen) lesen. Dies wird im folgenden Code (der voraussetzt, dass die Datei mindestens 100 Byte umfasst)<br />

veranschaulicht:<br />

var myFile:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");<br />

var myFileStream:FileStream = new FileStream();<br />

myFileStream.open(myFile, FileMode.READ);<br />

myFileStream.position = 10;<br />

myFileStream.readBytes(myByteArray, 0, 20);<br />

myFileStream.position = 89;<br />

myFileStream.readBytes(myByteArray, 0, 10);<br />

Letzte Aktualisierung 27.6.2012<br />

736

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!