我正在将多个图像加载到一个类实例中,我想跟踪任何给定点的完整加载数据量有多大。 我已经通过PHP脚本从我的图像目录中获取了总字节数...但是由于某些原因,从每个图像上的ProgressEvent收集新字节似乎很棘手。 让我们假设totalBytes变量是正确的,我完全不熟悉ProgressEvent的工作方式......
每次ProgressEvent获取新字节时都会触发事件吗? 如果没有,我如何跟踪当前的总字节数?
我确定我错了,但这就是我正在尝试的事情:
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.";
}
}
答案 0 :(得分:1)
您是否使用 flash.display.Loader 加载图片?然后,您可以使用 Loader.contentLoaderInfo.bytesTotal 属性,该属性应在图像加载完成后包含正确的字节数。 Loader.contentLoaderInfo属性引用已加载内容的LoaderInfo实例,该实例包含有关该文件的大量数据,例如总大小,已完成加载的数量以及加载它的URL。查看the LoaderInfo reference。
为所有加载器求和此属性的值,以获取已加载数据的总量,例如:在每个加载器的COMPLETE处理程序中。
干杯
答案 1 :(得分:0)
也许这不是您问题的答案,但我建议您查看bulk-loader库。它将极大地简化加载多个资产。这是一个快速而肮脏的使用示例。我们使用进度条获得了简单的应用程序,我们希望在下载图像时更新进度条。
<mx:Script>
<![CDATA[
import br.com.stimuli.loading.BulkProgressEvent;
import br.com.stimuli.loading.BulkLoader;
private function init():void {
loadImages();
}
private function loadImages():void {
var loader : BulkLoader = new BulkLoader("main-site");
loader.add("http://www.travelblog.org/Wallpaper/pix/tb_turtle_diving_sipadan_malaysia.jpg", {id:"a"});
loader.add("http://www.travelblog.org/Wallpaper/pix/tb_fiji_sunset_wallpaper.jpg", {id:"b"});
loader.addEventListener(BulkLoader.COMPLETE, onAllLoaded);
loader.addEventListener(BulkLoader.PROGRESS, onAllProgress);
loader.addEventListener(BulkLoader.ERROR, onAllError);
loader.start();
}
private function onAllLoaded(evt : BulkProgressEvent):void {
}
private function onAllProgress(evt : BulkProgressEvent):void {
progressBar.setProgress(evt.ratioLoaded * 100, progressBar.maximum);
}
private function onAllError():void {
}
]]>
</mx:Script>
<mx:ProgressBar x="304" y="360" width="582" id="progressBar" mode="manual" minimum="0" maximum="100"/>