I am loading multiple images into a class instance and I would like to keep track of how large the complete amount of loaded data is at any given point.
I have grabbed the totalbytes from my directory of images via a PHP script… but collecting the new bytes from the ProgressEvent on each image seems tricky for some reason.
Let’s assume that the totalBytes variable is correct and that I am totally unfamiliar with the way that ProgressEvent works…
Does an event get fired every time ProgressEvent gets a new byte?
If not, how do I keep track of the current total bytes?
I’m sure I’ve got it wrong, but here’s what I am trying:
public function thumbProgress(e:ProgressEvent):void
{
//trying to check for a new data amount, in case the progress event updates
//insignificantly
if(e.bytesLoaded != this.newByte)
{
this.newByte = this.currentLoadedBytes - e.bytesLoaded;
this.currentLoadedBytes += this.newByte;
this.textprog.text = this.currentLoadedBytes.toString() + " / " + this.totalBytes.toString();
this.newByte = e.bytesLoaded;
}
if(this.currentLoadedBytes >= this.totalBytes)
{
this.textprog.text = "done loading.";
}
}
Are you using a flash.display.Loader to load your images? Then you can use the Loader.contentLoaderInfo.bytesTotal property, which should contain the right number of bytes once the image has finished loading. The Loader.contentLoaderInfo property references the LoaderInfo instance of the loaded content, which contains a lot of data about the file, such as total size, the amount that have finished loading, and the URL from which it was loaded. Check out the LoaderInfo reference.
Sum the values of this property for all of your loaders, to get the total amount of loaded data, e.g. in the COMPLETE handler for each loader.
Cheers