對於如何使用相對路徑,FileReference是比較奇怪的。在大多數情況下,基本路徑是您的swf加載的路徑。除了IE瀏覽器(或者其他方式,現在我不記得了)。我認爲這不是IE/Firefox/chrmoe問題,而是一個玩家問題。 IE有一個Flash播放器,它使用ActiveX和其他瀏覽器的播放器。在某種程度上,他們在處理FileReference對象的相對路徑方面存在分歧。如果這是一個功能,這是非常愚蠢的,所以我的感覺是這是一個錯誤,但沒有檢查錯誤的基礎,所以我不知道它是否被官方認爲是一個錯誤。另外,在嵌入代碼中設置base_path不起作用。
無論如何,避免這種瘋狂的唯一理智的方法是使用完整路徑。試圖檢測是否IE瀏覽器可能會工作,但我認爲在某些時候這種煩惱將被修復;當發生這種情況時,你的代碼將會中斷,所以我認爲這是一個壞主意。
現在,您可能不想在swf中完整路徑的硬編碼,所以我用來解決此問題的一個簡單解決方案(假設您可以更改嵌入代碼)將此路徑通過flash var當你嵌入你的瑞士法郎。一般來說,我用php檢索這個路徑,所以在部署時或者移動東西時我不必手動修改它(我將絕對路徑傳遞給「app root」,對於我來說通常是嵌入swf;然後我將它連接到處理帖子的文件的相對路徑,因此從swf開始,就像使用相對路徑一樣)。
所以,如果你可以使用一些服務器端,你可以只寫一小段代碼,並忘記它。但即使您手動執行此操作,重新編譯swf也會更容易。