2009-06-23 43 views
6

我正在使用基於URL路由生成不同圖像的圖像緩存系統。源圖像存在於文檔根目錄之外,並且緩存版本被添加到webroot中的/緩存中。長話短說,在Flash中,如果我將Loader指向路由,我第一次收到「Load Never Completed」錯誤(如果尚未生成緩存映像)。Actionscript [Error#2036:Load Never Completed]與動態生成的圖像

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 

緩存的圖像仍然生成,下次運行應用程序時,實際文件加載沒有錯誤。生成初始圖像並寫入時,我得到了正確的標題,所以我想知道爲什麼flash沒有得到響應(似乎在瀏覽器窗口中工作正常)。

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

有關如何解決此問題的任何想法?這些錯誤似乎會讓Flash應用程序「陷入困境」。


如果有幫助,這裏的響應頭:

請求生成圖像:

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 

請求時,圖像緩存:

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 

回答

2

Flash IDE中的問題似乎。不是真的可以解決。

+2

對不起,但......這個「答案」是什麼意思? IDE如何在播放器中造成錯誤? – brianvaughn 2012-06-06 14:39:35

2

我剛剛開始克類似的問題,停止錯誤出現,你想趕上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()); 
} 

雖然這擺脫了錯誤的,一些地方在歌劇不加載圖像。最終我得到了這個通過改變圖像處理程序代碼(asp.net C#)當我試圖在瀏覽器中的照片將加載到瀏覽圖像前工作

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

,但它不會結束在Opera中加載,因此不會觸發加載完成事件。

希望這有助於(即使是在不同的語言)

+0

嗯,是的,我有一個IO_ERRORs監聽器(我發佈的輸出是您顯示的Alert的結果)。我以同樣的方式設置標題。不確定。當Flash對象在瀏覽器中時,這些錯誤似乎不會被拋出,所以也許它只是一個IDE的東西。 – typeoneerror 2009-06-24 19:45:08