你能否在服务器端确定Flash/SWF对象的宽度和高度?

3

我希望允许基于web的CMS的用户上传Flash文件并将其包含在内容中。我可能会使用SWFObject来渲染Flash,但我需要宽度和高度。当我进行上传时,是否可以通过C#确定这些尺寸?

谢谢。

2个回答

7

可能有更简单的方法,但是您可以从http://blogs.msdn.com/mswanson/archive/2006/10/15/example-c-code-for-reading-flash-swf-files.aspx下载“FlashTools.zip”并编译该项目。然后添加对“FlashTools.dll”程序集的引用。接下来,您可以使用以下代码获取高度/宽度:

SWFFile swf = new SWFFile(fileLocation);
Response.Write("Height:" + swf.FrameHeight/20 + " Width:" + swf.FrameWidth/20);

我已经测试过了,它显示了正确的信息。


2
+1 这确实非常有用。对于那些对为什么需要除以20感到困惑的人来说,swf文件使用 twips 作为度量单位。 - wsanville

1

也许你应该给用户提供手动输入每个SWF的宽度和高度的选项(以及从SWF字节码自动检测的选项)。

我提到这一点是因为SWF文件大多设计用于嵌入HTML中,而SWF的舞台大小(Flash术语的尺寸)并不总是旨在成为该内容的嵌入大小 - 有些SWF被设计为自动调整其内容以匹配它们在HTML中的嵌入方式,因此对于这些SWF来说,实际的舞台宽度和高度可能是无关紧要的。


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