2008-11-20 90 views
4

什么是安全沙箱违规,我如何覆盖它?我正在FlashDevelop中制作一个项目,而今天,它不会加载外部文件,尽管它以前是。它给出以下输出:AS3中的安全沙箱

*************安全沙箱违例*********连接到 file:/// C |/Documents% 20and%20Settings/Kevin.PC885314341208/Desktop/Import%20.txt/StockData/1.txt 暂停 - 不允许从 file:/// C | /Documents%20and%20Settings/Kevin.PC885314341208/Desktop/Import% 20.txt/import.swf

我希望这不是一个严重的问题。

感谢您的任何帮助。

回答

4

您正在加载本地文件,这是不允许的。然而,当你正在开发这个,你当然可以允许这个。

添加项目文件夹中的受信任位置:http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

编辑:我想补充一点,如果你的网络禁用它会工作运行(这是发展的目的)。例如,当你从Flash IDE运行它时,会发生这种情况,这可以解释为什么它可能在以前工作过?

+0

从Flash IDE运行swf实际上以特权模式运行:它可以访问本地和网络资源。当您在独立的Flash播放器中运行它时,它只能访问本地或网络资源中的一个。 – aaaidan 2008-12-01 02:23:35

0

好的。我通过使用FlashDevelop内置的Flashplayer发布它来工作(我不知道如何更好地描述它)。我无法使用Antti建议的安全设置。

+0

在FlashDevelop的项目属性(在编译器选项选项卡下),有一个设置“使用网络服务”。如果将此设置为true,则只能访问互联网,而false只允许本地文件。不能同时拥有。 – aaaidan 2008-12-01 02:25:33

+0

它在“内置”播放器中工作的原因是因为它可能以“特权模式”运行,它允许访问本地和网络资源。此模式仅在开发过程中可用,因此您不能依赖它进行部署。 – aaaidan 2008-12-01 02:32:53

2

当您尝试通过Web浏览器运行SWF时,无法加载桌面文件。 Flash不允许您访问本地硬盘,因为这将是一个主要的安全问题。您必须将这些文件放在某个服务器上,并将Flash传递给一个直接的URL。

11

您发布的错误消息显示您试图从本地swf加载本地文件。该错误可以为您的方案解决。

在FlashDevelop中,将“使用网络服务”设置为false(项目属性 - >编译器选项选项卡)。这会阻止你的swf访问互联网,但会让你加载本地文件。将其设置为true将允许访问Internet,但不能访问本地文件。

在Flash中,该设置位于“发布设置”,Flash选项卡下。它被称为“本地播放安全性”,设置为“仅访问本地文件”或“仅限访问网络”。它与FlashDevelop中的设置相同,只是名称不同而已。

您也可以在发布/编译后使用Adobe的免费版+打开Local Content Updater来切换swf文件的“使用网络”标志。