2011-01-13 60 views
0

我有一個Flex項目,其中嵌入了包含圖像查看器的Flash SWF。我正在嵌入的SWF文件由一個XML文件進行補充,該文件包含要顯示的圖像列表以及包含圖像的圖像文件夾。Flex:需要嵌入式SWF才能與項目資產進行交互

我遇到的問題是嵌入的SWF文件無法加載圖片。我可以看到前進/後退導航按鈕,但沒有加載圖像。當我在Flex項目之外查看SWF文件時,它工作正常。這是因爲Flex不允許SWF到達外部並訪問其他項目資產?我怎樣才能解決這個問題?

這裏是我的嵌入代碼的SWF:

<mx:Script> 
<![CDATA[ 
    import mx.controls.Image; 
    import mx.events.CloseEvent; 
    import mx.managers.PopUpManager; 

    [Embed(source = '../components/sampleReportViewer/photo_stack_gallery.swf')] 
    [Bindable] public var SWFClass:Class; 

    private function init():void {   
     //add the swf to the container 
     var img:Image = new Image(); 
     img.source = MovieClip(new SWFClass()); 
     contentBox.addChild(img);  

     PopUpManager.centerPopUp(this); 
    } 
]]> 

<mx:VBox id="contentBox" 
    width="600" height="450"/> 
+0

你運行調試閃光播放器如果沒有請安裝它,如果是這樣,你會在運行時遇到任何類型的錯誤,我的猜測是安全沙箱違規,但沒有得到錯誤消息,這將很難診斷和解決,更多關於加載模塊和安全上下文檢查這裏: http://livedocs.adobe.com/flex/3/html/help.html?content=modular_2.html http://livedocs.adobe.com/flex/3/html/he lp.html?內容= security2_01.html – shaunhusain 2011-01-13 19:10:02

回答

1

我的猜測是你的workpath是不一樣的。在您的網址從相對路徑來看(../)你有一個項目的結構看起來是這樣的:

| 
index.html 
| 
+ swf 
| | 
| main.swf 
| 
+ components 
| 
+ xml 

如果是這樣的話,您的Flash播放器將承擔index.html的父文件夾作爲當前工作路徑,如果您將HTML頁面加載到您的瀏覽器中,並且您所有的../引用都找不到正確的資源,而如果您通過直接雙擊swf來啓動,則一切正常。

1

首先,你應該通過加載器加載圖像,

VAR loaderSmall:裝載機=新的Loader(); loaderSmall.load(new URLRequest(imgArr [0] .path)); loaderSmall.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadThumbImage); loaderSmall.contentLoaderInfo.addEventListener(Event.COMPLETE,hideThumbImageLoader);

這裏,

imgArr [0]。路徑

是要被加載,現在你可以做很多事情,這種類型的設置圖像的路徑,現在你可以檢查,圖像是否加載與否

這是一個〔實施例畫廊,這是我開發的,它不是很完美,但圖像IM負荷是通過裝載機, http://no-refresh.com/demo/PortfolioSlideshow2/

在你的問題中,u SHD首先檢查路徑,這就是正確與否,是否可以b sourec圖像是不正確,

As @weltraumpirat已經寫了,做檢查對於爲好,

我知道它不會幫助U,但NE的方式,希望它有助於üsmway,TC

ANKUR

相關問題