2009-06-23 9 views
6

Pracuję z systemem buforowania obrazu, który generuje różne obrazy na podstawie adresu URL. Źródłowe obrazy znajdują się poza głównym katalogiem dokumentów, a wersje z pamięci podręcznej są dodawane do/cache w webroot. Krótko mówiąc, w Flash, jeśli wskażę Loader na trasie, otrzymam komunikat "Load Never Completed" za pierwszym razem (jeśli buforowany obraz nie został jeszcze wygenerowany).Actionscript [Błąd # 2036: Load Never Completed] z dynamicznie generowanymi obrazami

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 

Obraz w pamięci podręcznej jest nadal generowany i następnym razem, gdy uruchomię aplikację, rzeczywisty plik zostanie załadowany bezbłędnie. Mam odpowiednie nagłówki wysyłane podczas generowania początkowego obrazu i zapisywania go, więc zastanawiam się, dlaczego lampa błyskowa nie otrzymuje odpowiedzi (wygląda na to, że działa dobrze w oknie przeglądarki).

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

Wszelkie pomysły na rozwiązanie tego problemu? Błędy wydają się "bagatelizować" aplikację flash.


Jeśli to pomoże, oto nagłówki odpowiedzi:

Zapytanie do generowania obrazu:

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 

Zapytanie gdy obraz jest buforowane:

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 

Odpowiedz

2

Flash IDE problem wydaje. Naprawdę nie do naprawienia.

+2

Przepraszam, ale ... co oznacza ta "odpowiedź"? W jaki sposób IDE może powodować błąd w odtwarzaczu? – brianvaughn

2

I był gettin g podobnego problemu, aby zatrzymać ten błąd pojawia chcesz złapać 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()); 
} 

Chociaż ten pozbył się błędu, niektóre z obrazów, gdzie nie załadunku w Operze. W końcu dostałem tę pracę, zmieniając kod obsługi obrazu (asp.net C#) do

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); 

wcześniej, kiedy starałem się zobaczyć obraz w przeglądarce zdjęcie byłoby załadować, ale to nie skończy ładowanie w Operze, a więc nie uruchamianie zdarzenia pełnego obciążenia.

Nadzieja to pomaga, (nawet jeśli jest w innym języku)

+0

Hmm, tak, mam słuchacza dla IO_ERRORs (wydrukowane przeze mnie wyniki są wynikiem alertu, który pokazujesz). I ustawiam nagłówki w ten sam sposób. Niepewny. Błędy nie wydają się być zgłaszane, gdy obiekt Flash jest w przeglądarce, więc może to po prostu sprawa IDE. – typeoneerror

Powiązane problemy