【问题标题】:Flex: Need embedded SWF to be able to interact with project assetsFlex:需要嵌入式 SWF 才能与项目资产交互
【发布时间】:2011-01-13 19:01:47
【问题描述】:

我有一个 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"/>

【问题讨论】:

标签: apache-flex actionscript-3 flash loader swfloader


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    首先你应该通过loader加载图片,

    var loaderSmall:Loader=new Loader(); loaderSmall.load(新 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 所写,也要检查一下,

    我知道这对你没有帮助,但是有 n e 个方法,希望它对你有帮助,tc

    安库尔

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      相关资源
      最近更新 更多