我有一个swf,它是从浏览器中的C:/而不是服务器(长篇故事)运行的,并且swf加载了一个位于../../videos/video的视频,与该swf相关。
问题是,当我在Flex中运行它时,一切都很酷。在本地运行,它找不到文件(不是安全错误)并且正在抛出connectionError。
有什么想法吗?
注意:这似乎是一个Windows特定的问题,它在我的Mac上运行,具有相同的安全设置就好了。
答案 0 :(得分:2)
Flex Builder有一个文件,它将所有bin目录添加到其中,以便调试播放器能够绕过本地安全限制。
基本上Flexbuilder告诉Flash它应该信任bin文件夹...如果你在你的开发机器上搜索文件flexbuilder_plugin.cfg,你应该在一个名为FlashPlayerTrust的文件夹中找到它与你通常找到的大致相同的区域SharedObject文件。如果您在文本编辑器中打开此文件,您应该看到每个bin文件夹的每个路径,用于您曾经使用过的每个flex项目。突然间,一切都变得更加清晰。
您可以像fenomas建议的那样,将任何目录添加到您的可信列表中。您也可以按照上述博客文章的建议。
所以我创建了一个新文件并将它放在这个flexbuilder_plugin.cfg文件的旁边,并将其命名为MyProggy.cfg。 Flash配置为读入此文件夹中的所有文件并解析其中的所有路径,从这些路径运行的任何应用程序将被视为“localTrusted”,并且将像从Flexbuilder运行时那样运行。在这个文本文件中我放了一行:“c:\ program files \ my proggy”并保存了它。然后,我必须重新启动Firefox才能使更改生效。我还在我的应用程序中添加了一个文本标签,并将text属性绑定到{Security.sandboxType}。
答案 1 :(得分:1)
我建议获取Firefox的HTTPFOX,这是一个嗅探器。然后你可以看到什么是失败的。在我自己的搜索中,我发现FLV总是相对于SWF,即使加载到WEB上也是如此。我加载的每个资产都相对于index.html文件,但FLV总是保持相对于SWF。能够观看数据流动或尝试流向您的网站是非常宝贵的。
这也解释了为什么有些人在本地加载东西没有问题但在网络上遇到问题。如果他们加载swf的html文件位于与swf不同的位置,那么除了FLV之外的每个资产在网上查看时都有不同的相对路径,那么他们在本地查看时就会这样做。