Reading a file Asynchronously with ActionScript 3

// Imports
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.filesystem.File;
import flash.events.ProgressEvent;
import flash.events.Event;

// Declare the FileStream and String variables

private var _fileStream:FileStream;

private var _fileContents:String;

private function onCreationComplete():void // Fired when the application has been created

{

var myFile:File = File.appResourceDirectory; // Create out file object and tell our File Object where to look for the file

myFile = myFile.resolve("mySampleFile.txt"); // Point it to an actual file

_fileStream = new FileStream(); // Create our file stream

_fileStream.addEventListener(ProgressEvent.PROGRESS, onFileProgress); // Add our the progress event listener

_fileStream.addEventListener(Event.COMPLETE, onFileComplete); // Add our the complete event listener

_fileStream.openAsync(myFile, FileMode.READ); // Call the openAsync() method instead of open()

}
private function onFileProgress(p_evt:ProgressEvent):void // Event handler for the PROGRESS Event
{
_fileContents += _fileStream.readMultiByte(_fileStream.bytesAvailable, "iso-8859-1"); // Read the contens of the file and add to the contents variable

fileContents_txt.text = _fileContents; // Display the contents. I've created a TextArea on the stage for display
}

private function onFileComplete(p_evt:Event):void // Event handler for the COMPLETE event

{
_fileStream.close(); // Clean up and close the file stream
}

source

Leave a Reply