2009-10-02 10 views
8

Estoy desarrollando el cargador de imágenes en Flash. Utilizo FileReference.browse para explorar la imagen y luego cambio el tamaño de esta imagen a 1000 x 1000 px, si la imagen es muy grande y luego la cargo al servidor. Quiero mostrar la barra de progreso para el progreso de carga de la imagen.Progreso de la carga de imágenes usando URLLoader AS3

Estoy utilizando URLLoader para enviar datos binarios de las imágenes redimensionadas, pero ProgressEvent en URLLoader no funciona de la manera que se supone que funciona. Se dispara solo después de que se cargue la imagen cargada en lugar de mostrar un progreso intermedio. ProgressEvent en FileReference funciona perfectamente para mostrar el progreso de carga de imágenes intermedias.

¿Hay alguna manera de mostrar el progreso de la carga con URLLoader? o

Podemos usar FileReference para cargar la imagen modificada y luego llamar a FileReference.upload, de esta forma será posible mostrar la barra de progreso real.


Actualización 1:
Pero mi problema es que estoy Cambiar el tamaño de la imagen navegado después de usar FileReference.browse, y quiero subir imágenes redimensionadas, no la imagen original en el objeto FileReference después de examinar. ¿Cómo uso Filereference.upload en este caso? Filereference.upload cargará la imagen original, no la de tamaño grande. Cualquier idea, cómo poner la imagen redimensionada en el objeto Filereference y luego usar FileReference.upload.


Actualización 2:
No es capaz de establecer los datos en FileReference ficticia, los datos son propiedad de sólo lectura.


Actualización 3:
Pero esto tiene el mismo problema de no mostrar el progreso de carga de imágenes, desde el enlace anterior:.

"Desafortunadamente, hay un conseguir evento progress problema No podemos mostrar ningún progreso durante el envío de datos al servidor porque el flash no lo admite "

Estoy buscando exactamente una solución para el problema anterior. URLLoader funciona bien para publicar los datos de la imagen.

+0

Estoy haciendo exactamente lo mismo y tropecé con el mismo problema. Estoy pensando en poner una "barra de carga impreciso" mientras la carga está en progreso. – Danita

+0

Dado que en mi caso el archivo * generalmente * tiene aproximadamente el mismo tamaño, terminé configurando un temporizador con el tiempo estimado que la carga debería tomar en * la mayoría * situaciones, y obtengo ese temporizador para disparar ProgressEvents para que la barra de progreso se actualice . Es mejor que nada y los usuarios no pueden notar la diferencia. – Danita

+0

Ahora eso es lo que llamo una 'solución brillante'. – Tom

Respuesta

0

Use FileReference.upload, eso es específicamente para lo que es ese método, y tendrá su indicador de progreso.

+0

Él no está tratando de cargar el archivo original, sino el ByteArray de la codificación JPEG del tamaño resultante del archivo original. – Danita

+0

Hmm, podría haber jurado que la pregunta original no mencionaba que ... bueno, he vuelto a publicar una nueva respuesta que se aplica a la situación que se representa actualmente. – JStriedl

4

URLLoader está configurado de tal manera que NO PUEDE recibir eventos de progreso hasta que se complete la carga, como se indica HERE en los documentos. ¿Quizás pueda usar URLStream en su lugar para obtener el evento de progreso tal como lo desea? No estoy seguro si los eventos de progreso para URLStream solo disparan para descargar la respuesta del servidor, o si se dispararán para la transacción completa (cargar & descargar), los documentos no parecen especificar con precisión.

+1

Esto se ha subido dos veces ... Me pregunto si alguien lo ha probado y confirmado si URLStream distribuye los eventos de progreso adecuados. He leído en otro lugar que no, pero hasta ahora no hay una fuente definitiva ... Oh, bueno. – Cameron

+0

¡No veo nada en URLStream que sugiera que se puede usar para subir nada! La documentación describe DOWNloading en detalle, pero ni siquiera hay un método de carga. ¿Podría especificar cómo lo usaría para cargar un archivo? –

Cuestiones relacionadas