Apache flex Flex:需要嵌入式SWF才能与项目资产交互

Apache flex Flex:需要嵌入式SWF才能与项目资产交互,apache-flex,actionscript-3,flash,loader,swfloader,Apache Flex,Actionscript 3,Flash,Loader,Swfloader,我有一个Flex项目,其中嵌入了一个包含图像查看器的Flash SWF。我嵌入的SWF文件由一个XML文件补充,该文件包含要显示的图像列表和一个包含图像的图像文件夹 我遇到的问题是嵌入的SWF文件无法加载图片。我可以看到前进/后退导航按钮,但没有加载的图像。当我在Flex项目之外查看SWF文件时,它工作正常。这是因为Flex不允许SWF接触外部并访问其他项目资产吗?我怎样才能避开这件事 以下是我嵌入SWF的代码: <mx:Script> <![CDATA[ import

我有一个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);
    }
]]>


我猜你的工作路径不一样。从url(
。/
)中的相对路径判断,您的项目结构如下所示:

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

在这种情况下,如果您将html页面加载到浏览器中,并且所有
。/
引用都找不到正确的资源,那么Flash player将假定index.html的父文件夹为您当前的工作路径,而如果您直接双击swf,则一切都会正常工作

首先,您应该通过loader加载图像

var loaderSmall:Loader=new Loader(); loaderSmall.load(新) URLRequest(imgArr[0].path)); loaderSmall.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadThumbImage); loaderSmall.contentLoaderInfo.addEventListener(事件.COMPLETE,hideThumbImageLoader)

这里,

imgArr[0]。路径

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

这是我开发的一个exmaple画廊,它不是很完美,但我正在加载的图像是通过loader加载的,

在你的问题中,你应该首先检查路径,不管它是否正确,可能是图像的来源不正确

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

我知道这对你没有帮助,但是有很多种方法,希望它能帮助你


Ankur

您是否正在运行调试flash player如果没有请安装它如果是这样您在运行时是否遇到任何类型的错误,我猜是安全沙盒冲突,但如果没有收到错误消息,这将很难诊断和解决,有关加载模块和安全上下文的更多信息,请检查此处:
|
index.html
|
+ swf
| |
|  main.swf
|
+ components
|
+ xml