SWF 本地可信沙箱和 adobe air

Posted

技术标签:

【中文标题】SWF 本地可信沙箱和 adobe air【英文标题】:SWF local trusted sandbox and adobe air 【发布时间】:2011-12-16 12:38:13 【问题描述】:

我们是萨拉戈萨大学(西班牙)的一个研究小组。我们正在为有特殊需要(尤其是有社交和认知障碍的)儿童开发教育游戏。我们使用 Adob​​e Flash CS5 开发我们的游戏,因此我们可以使用 Action Script 语言。

出现的问题与 Flash 中的安全沙箱有关。

目前,我们正在设计一个新的教育应用程序,其中图像和声音资源来自 Internet,通过“loader.load(new URLRequest(name))”命令使用 Web 服务。我们正在使用足够的跨域文件,并且在网络上发布时运行良好。

但是,现在我们正在考虑开发一个桌面教育应用程序,教育工作者将在其中配置游戏,并将他们的工作保存在本地系统文件中。这就是出现问题的地方。由于 Flash 播放器沙盒将我们限制为“仅网络”或“仅本地文件系统”使用,我们无法同时访问 Internet 和生成本地文件。

我们不是在尝试制作 flash 病毒,我们只是在尝试为教育工作者制作一个应用程序,其中的资源来自 Internet,但该应用程序需要访问本地文件系统才能让教育工作者保存和加载他们的在他们的磁盘上工作。

阅读 Adob​​e 文档,我们发现了不同的 Flash 播放器沙箱: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e3f.html

似乎有一个沙盒可以让我们访问互联网和本地文件: “Security.LOCAL_TRUSTED - SWF 文件是本地文件,并且已被用户信任,使用设置管理器或 Flash Player 信任配置文件。SWF 文件既可以从本地数据源读取,也可以与 Internet 通信。”

Local_trusted SWF 文件似乎是由最终用户或安装程序设置的。由于我们打算在网络上发布该应用程序,而教育工作者将下载该应用程序,安装程序似乎是一个不错的选择,但我们无法找到有关 SWF 安装程序的信息。

另一方面,我们了解 Adob​​e Air 解决方案。我们知道 AIR 是 Fl​​ash Player 的替代品。这似乎足够了,因为它将我们的应用程序扩展到其他环境,如 android ios(平板电脑、手机等)。

问题是:使用 AIR,我们能否在 SWF 应用程序中获得网络和本地访问权限?那么最终用户呢?他/她是否能够从我们的 Web 和任何类型的 AIR 播放器下载 SWF 并在设备上以简单的方式执行我们的应用程序?最后,对于我们的目标应用程序,您认为最佳解决方案是什么? (请记住,我们希望在 AS3 中继续开发)

【问题讨论】:

【参考方案1】:

“仅限网络”是指您能够从代码访问用户的文件系统。您仍然可以使用“仅限网络”并让管理员使用 FileReference 类将文件上传到 Flash Player,并提示他们选择带有熟悉的操作系统弹出窗口的文件。

【讨论】:

【参考方案2】:

这一定是我一段时间以来读过的最全面的问题。好吧,您已经完成了研究,可悲的是,这些是您唯一的两个选择。是的,使用 AIR 应用程序,您将能够从 Web 获取资产。

如果我使用 AS3 创建桌面应用程序,AIR 绝对是我构建它的首选。

【讨论】:

我们已经开始使用 Air 并且效果很好!谢谢你,希望很快我们就会有几个关于这个的问题,但目前我们正在用我们的应用程序上路!

以上是关于SWF 本地可信沙箱和 adobe air的主要内容,如果未能解决你的问题,请参考以下文章

Adobe Air 加载内部带有 allowDomain('*') 的外部 swf

如何在Adobe Air上运行现有的SWF文件

Adobe AIR - 描述符文件中内容标签的动态 SWF 值

如何使用 Adob​​e AIR 在 Android 中使用原生 java 代码制作应用程序?

将Adobe Flash Builder游戏转换为Air吗?

本地 Swf 桥接远程 Swf 以绕过 flash 沙箱