0

我有一个 Flex 项目,我在其中嵌入了一个包含图像查看器的 Flash SWF。我嵌入的 SWF 文件由一个 XML 文件补充,该文件包含要显示的图像列表以及包含图像的图像文件夹。

我遇到的问题是嵌入的 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"/>
4

2 回答 2

1

My guess is your workpath is not the same. Judging from the relative paths in your url (../) you have a project structure that looks something like this:

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

If that is the case, your Flash player will assume the parent folder of index.html as your current workpath, if you load the HTML page into your browser, and all your ../ references won't find the correct resources, whereas if you start by double-clicking the swf directly, everything will work fine.

于 2011-01-13T23:42:02.727 回答
1

首先你应该通过加载器加载图像,

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

是要加载的图像的路径,现在你可以做更多的事情,通过这种类型的设置,现在你可以检查图像是否正在加载

这是我开发的一个示例画廊,它不是很完美,但我正在加载的图像是通过加载器, http://no-refresh.com/demo/PortfolioSlideshow2/

在您的问题中,您首先检查路径,是否正确,可能是图像的源代码不正确,

正如@weltraumpirat 所写,也要检查一下,

我知道这对你没有帮助,但是有新的方法,希望它可以帮助你 smway,tc

安库尔

于 2011-01-14T16:30:12.640 回答