我们是萨拉戈萨大学(西班牙)的研究小组。我们正在为有特殊需要的儿童(特别是社交和认知残疾)开发教育游戏。我们使用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应用程序中获得网络和本地访问权限?最终用户怎么样?他/她是否能够从我们的网站和任何类型的AIR播放器下载SWF并在设备上轻松执行我们的应用程序?最后,您认为我们所针对的应用程序的最佳解决方案是什么? (请记住,我们希望继续在AS3中开发)
答案 0 :(得分:0)
那一定是我读过一段时间最全面的问题。那么你已经完成了你的研究,遗憾的是你只有两个选择。是的,使用AIR应用程序,您将能够从Web获取资产。
如果我使用AS3创建桌面应用程序,AIR肯定是我构建它的第一选择。
答案 1 :(得分:0)
“仅网络”是指您可以从代码访问用户的文件系统。您仍然可以使用“仅网络”并让管理员使用FileReference类将文件上载到Flash Player中,并提示他们选择具有熟悉的os弹出窗口的文件。