图像使用URLLoader AS3上载进度

时间:2009-10-02 22:57:12

标签: flash file-upload filereference urlloader

我正在开发Flash中的图像上传器。我使用FileReference.browse浏览图像,然后将此图像调整为1000 x 1000像素,如果图像非常大,然后上传到服务器。我想显示图片上传进度的进度条。

我使用URLLoader来发送已调整大小的图像的二进制数据,但URLLoader上的ProgressEvent不能按预期的方式工作。仅在图像上传完成后才会触发,而不是显示中间进度。 FileReference上的ProgressEvent可以很好地显示中间图像上传进度。

有没有办法使用URLLoader显示上传进度?或

我们可以使用FileReference加载修改后的图像,然后调用FileReference.upload,这样就可以显示实际的进度条。


更新1
但我的问题是我在使用FileReference.browse后调整浏览后的图像大小,我希望在浏览后上传调整大小的图像,而不是FileReference对象中的原始图片。在这种情况下如何使用Filereference.upload? Filereference.upload将上传原始图像而不是已调整大小的图像。任何想法,如何将调整大小的图像放入Filereference对象,然后使用FileReference.upload。


更新2
无法在虚拟FileReference中设置数据,数据是只读属性。


更新3
但是,从上面的链接中可以看出没有显示图像上传进度的问题:

“不幸的是,获取进度事件存在问题。我们无法在向服务器发送数据时显示任何进展,因为闪存不支持它”

我正在寻找上述问题的解决方案。 URLLoader可以正常发布图像数据。

2 个答案:

答案 0 :(得分:3)

URLLoader的设置方式是,在加载完成之前,它无法接收进度事件,如文档中所述HERE。您可能可以使用URLStream来获取您想要的进度事件吗?我不确定URLStream的进度事件是否仅用于下载服务器的响应,或者如果它们将针对完整的事务(上传和下载)触发,则文档似乎没有精确指定。

答案 1 :(得分:-1)

使用FileReference.upload,具体是该方法的用途,您将拥有进度指示器。