Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 在Actionscript 3中监视文件上载进度_Flash_Actionscript 3 - Fatal编程技术网

Flash 在Actionscript 3中监视文件上载进度

Flash 在Actionscript 3中监视文件上载进度,flash,actionscript-3,Flash,Actionscript 3,我试图在AS3中跟踪文件上传的进度,我发现了一些奇怪的行为。当我选择一个文件并上传它时,即使文件是10兆或更多兆字节,进度也会立即达到100%,但它还没有完成。onComplete事件在文件真正完成上载后大约30秒到几分钟后(取决于文件大小)触发。我已经在本地和服务器上对此进行了测试,其行为是相同的。还有其他人经历过吗?非常令人沮丧 否则,文件将正常上载。代码很简单: myFileReference.addEventListener(ProgressEvent.PROGRESS, onUploa

我试图在AS3中跟踪文件上传的进度,我发现了一些奇怪的行为。当我选择一个文件并上传它时,即使文件是10兆或更多兆字节,进度也会立即达到100%,但它还没有完成。onComplete事件在文件真正完成上载后大约30秒到几分钟后(取决于文件大小)触发。我已经在本地和服务器上对此进行了测试,其行为是相同的。还有其他人经历过吗?非常令人沮丧

否则,文件将正常上载。代码很简单:

myFileReference.addEventListener(ProgressEvent.PROGRESS, onUploadProgress);

function onUploadProgress(e:ProgressEvent) {
    var pctDone:Number = (e.bytesLoaded / e.bytesTotal) * 100;
    trace(pctDone);
}

你的代码看起来不错!我看不出有任何理由认为它不能如预期那样发挥作用


在调用filereference上的browse()方法之前还是之后添加事件侦听器?试着切换顺序,看看运气如何。

我能想到的唯一一件事是,可能e.bytesTotal没有正确初始化。也许试着追踪它来验证一下

如果是这样的话,我会怀疑问题出在您将文件数据流传输到的任何服务器端技术上(即,无论您传递到myFileReference.upload的URL指向什么)。另外请注意,FileReference.upload有两个可选参数,可以帮助您解决问题,尽管根据我对它们的了解,我认为它们与这个问题没有多大关系

祝你好运


我认为你不需要乘以100。如果我没记错的话,AS3中的进度条从0变为1.0。我是在遇到类似问题时发现这个问题的。我有一个多文件上传小程序。我正在监视两个进度:每个文件分别和文件总数。后者的工作原理与预期一样,因为它是手动完成的,但第一个失败的方式完全相同。添加跟踪显示了一种恶劣的行为:

protected function fileUploadProgress(event:ProgressEvent):void{
    var bytesTotal:uint = event.bytesTotal;
    var bytesLoaded:uint = event.bytesLoaded;
    progressBar_current.setProgress(bytesLoaded, bytesTotal);
    trace(bytesLoaded+ " / "+bytesTotal); 
}

327680 / 462357 
462357 / 462357 
398304 / 398304 
441478 / 441478 
457319 / 457319 
478448 / 478448
我的上传速度大约为500 kbps,因此每个文件都需要几秒钟的时间,但正如您所看到的,除了第一个文件,在所有情况下,每个文件都只会触发一个事件,并且在启动后立即触发,并且是100%


更新更新:发现了!卸载AVG Antivirus后,progress事件的工作方式与它应该的工作方式完全相同。一些患有NOD的人也经历过同样的问题。因此,这似乎是AV/防火墙应用程序的问题。AVG Free没有包含防火墙,但它似乎仍然破坏了上传。

您能提供完整的相关代码吗?myFileReference是什么类型的变量?对于所有浏览器都是一致的吗?您使用的浏览器/flash player版本是什么?是的,默认情况下,进度条变为1。如果愿意,您可以将最大值设置为另一个值,但默认值适用于比例。谢谢,这确实帮助了我们!AVG也是这里的问题。