2011-07-24 89 views
0

我有一個在運行時加載各種SWF的AS3應用程序。正在使用的加載動畫具有相當長的進出動畫,如果目標SWF位於瀏覽器緩存中,我不想顯示該動畫。如何在瀏覽器緩存中檢測SWF的存在?

所以目前根據需要使用的每個SWF被載入GreenSock的SWFLoader的基本方式:

var context:LoaderContext = new LoaderContext(); 
context.applicationDomain = ApplicationDomain.currentDomain; 
loader = new SWFLoader("mySWF.swf", {name:"sectionLoader",context:context,auditSize:true,onOpen:onLoadInit,onProgress:onLoadProgress, onComplete:onCompleteLoadHandler, onError:onLoadErrorHandler}); 
loader.load(); 

我的目標是呼籲loader.load();,以確定是否加載操作將需要請求之前做一些事情超越瀏覽器緩存,但在我進入R之前丁某的東西,我想我會問,如果有人已經做了類似的事情。

一些更多的想法我到目前爲止有:

  • 只是跟蹤什麼在AS3被加載的不夠好,因爲如果用戶清除其緩存,他們可能會留裝載大SWF處於無連接狀態的緩慢連接狀態。
  • 可能需要調查LoaderItem.httpStatusLoaderItem.auditSize()的組合嗎?
  • 是否有更好的AS3加載框架,我應該看看而不是Greensock類?
  • 理想情況下,我寧願也有一些版本檢測跨越可能相隔幾個月的會話,但一次只能一步。

回答

2

當你正在做任何HTTP請求時,響應會出現HTTPStatus屬性。在AS3中,你只需要仄如果

HttpStatusEvent.status == 304

而且在使用GreenSock庫httpStatus

基本上304代碼意味着服務器端沒有chage已經被用戶請求的資源。最終導致資源在緩存中的結論。

UPDATE

如果這還不能滿足您的需要儘量存儲一些變量,你應該在這時候,Cookies或Session變量播放動畫或沒有。

+0

很酷,謝謝。所以只要請求審計會觸發httpStatus事件,那麼我很好。一旦我開始構建測試,我們會看到。 – shanethehat

+0

關於你的更新,這是我不能做的,因爲用戶可以隨時清除他們的緩存。 – shanethehat

+0

是的,但你會更進一步,你不會依賴於緩存。但在其他事實上。 –