AS3 和 PHP..在本地保存屏幕截图并避免系统对话框


AS3 and PHP... saving a screenshot locally and avoiding system dialogs?

绘制显示对象的位图后,我需要在本地保存位图以及文本输入,并避免 Flash 播放器在保存时显示的系统对话框。这可以通过PHP实现吗?我读过Air非常有效地处理这项任务,但我对这两个平台都缺乏经验。任何帮助将不胜感激!谢谢。。。

不,你不能。允许Web应用程序在未经许可的情况下在本地系统上保存数据是一个巨大的安全风险(我可以编写一个看起来合法的Web应用程序来保存系统上的间谍软件)。出于这个原因,Flash不允许它。

但是,基于桌面 (AIR) 的应用程序可以在FileMode.WRITE模式下打开FileStream并向其中写入数据,而无需用户的任何提示。

编辑由于您正在寻找基于桌面的应用程序,因此这里有一些提示:

var randomname:String=Math.floor(Math.random() * 1024).toString(16) + ".png"
var f:File=File.desktopDirectory.resolvePath("photos/" + randomname);
var s:FileStream=new FileStream();
s.open(f, FileMode.WRITE);
s.writeBytes(bytesArray); //bytesArray contains the binary data to write to the file
s.close();

为此,
请参考 FileReference.save()。是的,它需要用户交互(否则将是一场噩梦)。

如果您不愿意使用 AIR 和 FileStream 类,这是您唯一的选择。
AIR 文件 API 没有此限制,但需要您运行桌面应用程序。

好吧,您始终可以使用本地 SharedObject 来存储一些数据,但在这种情况下,您将获得 AMF 编码。这将适用于 AIR 和 Web 应用程序。