【发布时间】:2011-12-16 12:38:13
【问题描述】:
我们是萨拉戈萨大学(西班牙)的一个研究小组。我们正在为有特殊需要(尤其是有社交和认知障碍的)儿童开发教育游戏。我们使用 Adobe Flash CS5 开发我们的游戏,因此我们可以使用 Action Script 语言。
出现的问题与 Flash 中的安全沙箱有关。
目前,我们正在设计一个新的教育应用程序,其中图像和声音资源来自 Internet,通过“loader.load(new URLRequest(name))”命令使用 Web 服务。我们正在使用足够的跨域文件,并且在网络上发布时运行良好。
但是,现在我们正在考虑开发一个桌面教育应用程序,教育工作者将在其中配置游戏,并将他们的工作保存在本地系统文件中。这就是出现问题的地方。由于 Flash 播放器沙盒将我们限制为“仅网络”或“仅本地文件系统”使用,我们无法同时访问 Internet 和生成本地文件。
我们不是在尝试制作 flash 病毒,我们只是在尝试为教育工作者制作一个应用程序,其中的资源来自 Internet,但该应用程序需要访问本地文件系统才能让教育工作者保存和加载他们的在他们的磁盘上工作。
阅读 Adobe 文档,我们发现了不同的 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 安装程序的信息。
另一方面,我们了解 Adobe Air 解决方案。我们知道 AIR 是 Flash Player 的替代品。这似乎足够了,因为它将我们的应用程序扩展到其他环境,如 android IOS(平板电脑、手机等)。
问题是:使用 AIR,我们能否在 SWF 应用程序中获得网络和本地访问权限?那么最终用户呢?他/她是否能够从我们的 Web 和任何类型的 AIR 播放器下载 SWF 并在设备上以简单的方式执行我们的应用程序?最后,对于我们的目标应用程序,您认为最佳解决方案是什么? (请记住,我们希望在 AS3 中继续开发)
【问题讨论】:
标签: actionscript-3 air flash sandbox