2010-05-05 110 views
0

我在flex應用程序的mxml中有SWFLoader。在flex中加載遠程swf文件

<mx:SWFLoader id="swfPreview" 
    width="100%" height="90%" y="20" visible="false"/> 

現在點擊一個按鈕,我在執行動作腳本下面的代碼。

swfPreview.addEventListener(Event.COMPLETE,loadComplete); 
swfPreview.scaleContent = true; 
swfPreview.load(url); 

其中「URL」是url到當前SWF在互聯網上(這個域名可以是相同的或不同的,我面臨的問題在這兩種情況下)現在

,在loadComplete,我做的以下:

private function loadComplete(event:Event):void 
{ 
    Alert.show("Load complete"); 
    swfPreview.removeEventListener(Event.COMPLETE,loadComplete); 
    swfPreview.visible = true; 
} 

我得到的警報彈出(也就是loadComplete叫),但沒有得到任何SWF加載,無法看到任何東西。可能是什麼問題,我錯過了什麼或某些安全問題?我也試圖加載swf的圖像控件。此外,瑞士法郎是PDF文件轉換爲瑞士法郎,所以這可能是Flash和Flex之間不同幀率的問題? 任何幫助將不勝感激。

感謝

+0

你有沒有嘗試過用不同的瑞士法郎來看看它是否按預期工作? – quoo 2010-05-05 13:30:00

+0

其實我試過把swf放在我有權訪問的域中,並且能夠加載swf。我還嘗試在其他情況下查看swf的內容屬性,並在內容中看到AVM1movie對象。但令人驚訝的是,當我調試並離開調試器一段時間時,我看到一條消息 「securitydomain試圖訪問不兼容的上下文」,我認爲這是某種安全問題,將不得不放置一個跨域文件。 – Gaurav 2010-05-06 06:30:23

+0

我爲SWF加載器使用了LoaderContext,並上傳了Flex應用程序,然後能夠加載swf,萬分感謝! 但我的快樂並不長久,我看到加載的swf閃爍(加載的swf中的一些圖像閃爍,沒有文字可見)。 這是關於不同的幀率? – Gaurav 2010-05-06 10:31:32

回答

0

我從來沒有工作過的SWFLoader明確,但它聽起來像是你不添加加載的對象的顯示。如果SWFLoader的行爲至少與flash.display.Loader相似,則必須在Event.COMPLETE上獲取對象並將其添加到顯示中。喜歡的東西:

loader = new Loader(); 
var req:URLRequest = new URLRequest("http://example.com/your.swf"); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
loader.load(req); 

private function onComplete(e:Event):void { 
    addChild(e.target.loader.content); 
} 

對於使用裝載一個完整的例子,你可以檢查的Vimeo播放器API,它加載了視頻播放器SWF從他們的網站到你的應用程序:

http://www.vimeo.com/api/docs/moogaloop