[英]Flex: Need embedded SWF to be able to interact with project assets
我有一個Flex項目,其中嵌入了包含圖像查看器的Flash SWF。 我要嵌入的SWF文件由XML文件補充,該文件包含要顯示的圖像列表以及包含圖像的images文件夾。
我遇到的問題是嵌入式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"/>
我的猜測是您的工作路徑不一樣。 從url( ../
)中的相對路徑來看,您的項目結構如下所示:
|
index.html
|
+ swf
| |
| main.swf
|
+ components
|
+ xml
在這種情況下,如果將HTML頁面加載到瀏覽器中,並且所有../
引用都找不到正確的資源,則Flash Player將把index.html的父文件夾作為當前工作路徑,而如果您可以直接雙擊SWF,一切正常。
首先,您應該通過加載器加載圖像,
var loaderSmall:Loader = new Loader(); loaderSmall.load(new URLRequest(imgArr [0] .path)); loaderSmall.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadThumbImage); loaderSmall.contentLoaderInfo.addEventListener(Event.COMPLETE,hideThumbImageLoader);
這里,
imgArr [0] .path
是要加載的圖像的路徑,現在您可以通過這種類型的設置做更多的事情,現在您可以檢查圖像是否正在加載
這是我開發的一個exmaple畫廊,它不是很完美,但是通過加載程序http://no-refresh.com/demo/PortfolioSlideshow2/加載圖像
在您的問題中,您必須先檢查路徑,是否正確,否則圖像的源可能不正確,
正如@weltraumpirat所寫的那樣,也要檢查一下,
我知道這不會幫助您,但是可以,希望它可以幫助您
安庫爾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.