如何在服务器上生成一个Flash SWF截图?

3
我正在使用开源工具编写一个闪存应用程序。我希望能够在应用程序中加载数据文件,并在服务器上捕获舞台的屏幕截图。唯一看起来比较神秘的部分是在服务器上运行应用程序。实际上,我甚至不在乎它是否是同一个应用程序在服务器和浏览器上运行--如果我可以使用flash舞台和绘图例程在服务器端生成图像,那么我就很高兴了。如果我必须深入研究flex,也可以。现在,我的问题是找不到任何起点。
我知道Adobe有一些商业产品可能适合我的需求,但我想坚持使用开源、Apache和Linux。我知道使用Haxe/Neko可能已经可以实现这个目标,但如果有更主流的工具可用,我想使用它们。我要求过多吗?
编辑/澄清:非常感谢大家的回复,但我认为我在描述时有点含糊。我已经使用与建议的PNGEncoder类相同的方式编写了实际的舞台截取代码。问题在于如何在服务器端实际运行swf。我不想让客户端自己拍摄屏幕截图,因为这会打开客户恶意提交不符合舞台内容的屏幕截图的可能性,也就是说,我不想让用户上传色情内容。如果我可以在服务器上运行actionscript代码,那么我就可以从我的数据文件生成屏幕截图,并确保截图与数据匹配,但我不知道如何在服务器上运行actionscript或swf。

你想象中的频率是什么样的?每秒100次?每小时1次?这可能会对答案产生很大的影响。 - Matt Dawdy
简短回答,我不知道。如果唯一的解决方案涉及为每个截图调用Flash播放器,那么好吧,这是需要知道的。我主要想知道是否有任何方法可以继续进行。当然,速度越快越好,但在这一点上我什么都不知道! - indignant
6个回答

1

Swf在客户端计算机上运行,而不是在服务器上。如果您在服务器上设置了特殊环境,使其运行Web浏览器、打开页面并运行swf,则它才会在服务器上运行。但即使这样,它也与外部用户所做的无关。

您需要在客户端运行它。至于您的安全性问题,消除这些问题的最佳方法是让php仅接受加密形式的图像文件,而Flash可以加密该文件。这样,他们就不能简单地使用PHP文件上传任何他们想要的图像,除非他们碰巧将其加密为与您的swf完全相同的方式。 接下来,加密swf本身(我建议使用SWF Shield),以便潜在黑客无法读取代码,从而知道如何加密图像。


1

我们刚完成了一个类似的项目,从动态加载数据的SWF文件中呈现JPG图像,我们使用了IECapt


0

我知道这个问题已经很久了,但我遇到了类似的问题,最终编写了一个使用AppleScript + UI脚本的脚本来获取OS X中独立Flash播放器预览窗口的内部区域。你可以在Github上获取它这里


0

swfdec-gnome软件包中使用swfdec-thumbnailer怎么样?它用于创建SWF文件的缩略图,但可以使用-s参数接受任意大尺寸。

编辑:Ubuntu 10.10已弃用swfdec-gnome,转而支持Gnash。这里有一个使用Gnash截屏的指南(请注意某些功能如渐变目前尚未得到很好的支持)。


0

你尝试过使用ActionScript打印命令吗?


0

已经尝试过这个类了。它不适用于截屏。 - mccbala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接