簡體   English   中英

Flex:需要嵌入式SWF才能與項目資產交互

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM