我有一個問題,我正在開發一個Firefox擴展。嵌入SWF文件在Firefox附加組件(無SDK)
我需要在頁面中添加一個SWF文件。如果我從遠程服務器加載它,它工作正常:
myObj2.setAttribute("data",'http://www.mySite.com/myFile.swf');
myPar1.setAttribute("value",'http://www.mySite.com/myFile.swf');
它工作正常,但不接受審查。
所以我創建的清單資源目錄:
resource ldvswf swf/
和改劇本爲:
myObj2.setAttribute("data",'resource://ldvswf/myFile.swf');
myPar1.setAttribute("value",'resource://ldvswf/myFile.swf');
,但它不工作。文件夾資源:// ldvswf是好的,因爲我測試加載圖像,我看到它。
的評論家寫道:我對Flash文件時,它「需要通過文件這樣做:URL」,但我不知道如何管理,我測試:
'file: resource://ldvswf/myFile.swf'
'file://resource://ldvswf/myFile.swf'
'file://ldvswf/myFile.swf'
'file: ldvswf/myFile.swf'
一切都停止工作。
任何建議的正確途徑?
非常感謝!
納迪亞
更新:編輯寫信給我:
你需要一個指向實際文件的文件URL。如果您的分機拆包,類似於下面的東西應該做的:
Services.io.newFileURI(Services.io.newURI("resource://ldvswf/myFile.swf", null, null)
.QueryInterface(Ci.nsIFileURL).file)
.spec
但我不知道如何PLCE它來代替:
myObj2.setAttribute("data",'http://www.mySite.com/myFile.swf');
myPar1.setAttribute("value",'http://www.mySite.com/myFile.swf');
我做了一些測試,如:
var file = Services.io.newFileURI(Services.io.newURI("resource://ldvswf/myFile.swf", null, null).QueryInterface(Ci.nsIFileURL).file).spec ;
myObj2.setAttribute("data",file);
myPar1.setAttribute("value",file);
但是我收到此錯誤消息:
錯誤:NS_NOINTERFACE:組件返回失敗代碼:0x80004002(NS_NOINTERFACE)[ns IFileURL。文件]
的var文件= ...行對我的作品(取代的東西的路徑後,我有) –