2011-02-03 49 views
0

HI, 我得到的一個問題叫,這可能是簡單的解決這個問題,但我真的卡在這,所以....未處理的IOErrorEvent在SWF文件由FLEX4

這裏是我的代碼:

<mx:SWFLoader source="@Embed('assets/games/memory.swf')" includeIn="memory" trustContent="true"/> 

我加載swf文件,我做到了,但認爲,在這個swf文件我做的URL請求來獲取圖像文件,當我打開它工作正常的SWF,但是當我使用上面的代碼加載,我得到一個錯誤:

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 

一切都很好,只是我從外部獲取的圖像沒有加載!

有人知道如何解決這個問題嗎?

謝謝!

編輯:

如果我作爲調試模式下運行,我得到了在控制檯此消息:

[SWF] Machine.swf/[[DYNAMIC]]/1 - 277,632 bytes after decompression 
SharedObjectExample() loaded 
SharedObject loaded... 

loaded value: undefined 

EDIT2: 有趣的想,我得到了工作使用BulkLoader和有趣認爲,當我使用BulkLoader並在調試模式下運行,我得到:

[SWF] assets/games/memory.swf - 277,632 bytes after decompression 
SharedObjectExample() loaded 
SharedObject loaded... 

loaded value: undefined 

這可能是PATH問題,問題是: 當我使用SWFLoader加載時,它是否加載到不同的上下文路徑中?

+0

是該URL被裝載通過memory.swf文件的相對路徑,如果是這樣的話,很可能包含memory.swf的swf只是沒有相同的基本目錄,所以相對路徑無法正確解析,如果您使用firefox安裝firebug並觀看流量來查看它請求的URL,以確定如何查看如果需要,請指定相對路徑,否則爲FaultEvent.FAULT添加一個偵聽器並在其中放置一個斷點,以查看錯誤是否提供了更多信息。 (替代螢火蟲得到查爾斯網站調試代理,免費試用的偉大計劃值得50塊錢) – shaunhusain 2011-02-03 17:13:43

回答

0

我發現瞭解決方案,訣竅是,如果我將swf文件加載爲'Embed',則所有相對路徑(swf內部)都將成爲我的主應用程序(mais swf),所以我得到以下跟蹤:

[SWF] Machine.swf/[[DYNAMIC]]/1 - 277,632 bytes after decompression 

如果我想在我的'孩子'swf中使用真實路徑,我不能加載爲'Embed'!

所以,要解決,我只是改變我的代碼:

<mx:SWFLoader id="loader" source="assets/games/memory.swf" includeIn="memory"/> 

編輯:

我貼在我的博客線程解釋,以及:http://arthurnn.com/blog/2011/02/03/trick-using-swfloader-to-load-a-swf-file/

相關問題