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