2009-06-23 13 views
6

Estoy trabajando con un sistema de almacenamiento en caché de imágenes que genera diferentes imágenes basadas en una ruta de url. Las imágenes de origen se encuentran fuera de la raíz del documento y las versiones en caché se agregan a/cache en la raíz web. Para abreviar, en Flash, si señalo Loader en la ruta, aparece el error "Cargar nunca completado" la primera vez (si aún no se ha generado la imagen en caché).Actionscript [Error # 2036: Cargar nunca completado] con imágenes generadas dinámicamente

Error opening URL 'http://characters.dev/cache/Pledges/16107/48_48c/jen001.jpg' 
Error #2036: Load Never Completed. URL: http://characters.dev/cache/Pledges/16107/48_48c/jen001.jpg 

La imagen almacenada en caché se sigue generando y la próxima vez que ejecute la aplicación se carga el archivo reales sin error. Cuando generé la imagen inicial y la escribí, recibí los encabezados adecuados, por lo que me pregunto por qué el flash no está recibiendo la respuesta (parece que funciona bien en una ventana del navegador).

header("Content-type:image/jpeg"); 
echo $this->getResponse()->setBody(file_get_contents($cachedFile)); 

¿Alguna idea sobre cómo solucionar esto? Los errores parecen "empantanar" la aplicación flash.


Si ayuda, aquí está la cabeceras de respuesta:

Solicitud para generar la imagen:

HTTP/1.1 200 OK 
Date: Tue, 23 Jun 2009 17:52:49 GMT 
Server: Apache 
X-Powered-By: PHP/5.2.6 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
Set-Cookie: PHPSESSID=6b746d4ed010c288a824522597698ea2; expires=Fri, 24-Jul-2009 17:52:50 GMT; path=/; domain=.characters.dev 
Content-Length: 3575 
Content-Type: image/jpeg 

Solicitud cuando se almacena en caché la imagen:

HTTP/1.1 200 OK 
Date: Tue, 23 Jun 2009 17:53:27 GMT 
Server: Apache 
Last-Modified: Tue, 23 Jun 2009 17:52:50 GMT 
ETag: "24e6c62-df7-a8bd0080" 
Accept-Ranges: bytes 
Content-Length: 3575 
Content-Type: image/jpeg 

Respuesta

2

tema Flash IDE parece. No es realmente reparable

+2

Lo siento pero ... ¿qué significa esta "respuesta"? ¿Cómo puede el IDE estar causando un error en el reproductor? – brianvaughn

2

I fue gettin g un problema similar, para detener el error que aparece que se desea capturar la IOErrorEvent.IO_ERROR

_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError_handler, false, 0, true); 

public function ioError_handler(event:IOErrorEvent):void 
{ 
    Alert.show(event.toString()); 
} 

Si bien esto se deshizo del error, algunas de las imágenes en las que no se carga en Opera. Al final conseguí que esto funcione cambiando el código del controlador de imagen (asp.net C#) para

context.Response.ClearContent(); 
context.Response.ClearHeaders(); 
context.Response.ContentType = "image/jpg"; 
context.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
context.Response.Cache.SetNoStore(); 
context.Response.Cache.SetExpires(DateTime.MinValue); 
context.Response.BufferOutput = false; 
context.Response.BinaryWrite(photo); 

antes, cuando traté de ver la imagen en el navegador de la foto se carga, pero no terminaría cargando en Opera, por lo tanto, no disparando el evento de carga completa.

Espero que esto ayude, (incluso si es en un idioma diferente)

+0

Hmm, sí, tengo un oyente para IO_ERRORs (la salida que publiqué es el resultado de la alerta que muestra). Y estoy configurando los encabezados de la misma manera. No es seguro. Los errores no parecen ser arrojados cuando el objeto Flash está en el navegador, por lo que tal vez solo sea un IDE. – typeoneerror

Cuestiones relacionadas