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