Apache flex AS3:从多个源加载字节

Apache flex AS3:从多个源加载字节,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我正在将多个图像加载到一个类实例中,我希望跟踪在任何给定点加载的完整数据量有多大。 我通过一个PHP脚本从我的图像目录中获取了totalbytes。。。但由于某些原因,从每个图像上的ProgressEvent收集新字节似乎很棘手。 让我们假设totalBytes变量是正确的,并且我完全不熟悉ProgressEvent的工作方式 每次ProgressEvent获取新字节时是否触发事件? 如果没有,如何跟踪当前的总字节数 我肯定我弄错了,但我正在尝试: public function thumbPr

我正在将多个图像加载到一个类实例中,我希望跟踪在任何给定点加载的完整数据量有多大。 我通过一个PHP脚本从我的图像目录中获取了totalbytes。。。但由于某些原因,从每个图像上的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.";
    }
}
您是否使用flash.display.Loader加载图像?然后可以使用Loader.contentLoaderInfo.ByTestTotal属性,该属性应在映像完成加载后包含正确的字节数。Loader.contentLoaderInfo属性引用加载内容的LoaderInfo实例,该实例包含有关文件的大量数据,例如总大小、已完成加载的数量以及加载该文件的URL。退房

对所有加载程序的此属性的值求和,以获取加载的数据总量,例如,在每个加载程序的完整处理程序中


干杯

也许这并不是你问题的答案,但我建议你看看图书馆。它将大大简化加载多个资产的过程。下面是一个快速而肮脏的用法示例。我们有一个带有progressbar的简单应用程序,我们希望在下载图像时更新progressbar

<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"/>



这似乎就是我要找的。有趣的是,我以前从未尝试过添加总的onComplete。谢谢。呃,事实上,我认为这行不通。我需要INIT处理程序来完成与totalBytes属性相关的工作。这个号码现在也应该有了,对吗?我不认为必须先加载映像才能访问它。我真的不想使用bulkloader库。我觉得很好。。。笨重的。:)