Java与JavaScript获取Flash文件高宽的方法

作者:清欢时间:2026-10-27 20:32:16浏览:484

本文介绍两种获取Flash文件高宽的方法。JavaScript可通过设置embed标签的width和height属性直接读取;Java则需解析SWF文件头,区分FWS与CWS类型,其中CWS需先解压,随后通过读取特定字节位计算宽高,公式为x/20和y/20像素。

JavaScript获取Flash宽高

JavaScript实现



通过设定embed元素的高度和宽度属性,可以直接读取Flash对象的高宽尺寸。


具体实现代码如下:

 
<!DOCTYPE HTML>
<html>
<body>
<embed src="test550X400.swf" id="flash" width="550px" height="400px"/>
<script type="text/javascript">
var flash = document.getElementById("flash");
alert("宽:"+flash.width+" 高:"+flash.height);
</script>
</body>
</html>

Java解析Flash文件头获取宽高

Java实现



利用Java代码解析Flash文件头信息可以获取其尺寸。需要注意的是,Flash文件主要分为FWS和CWS两种类型。其中,CWS类型的数据部分是经过zlib压缩后的形式,因此在解析前必须先进行解压处理。



对于未压缩的FWS类型Flash文件,其文件头中直接包含尺寸信息,解析步骤如下:



文件的前三个字节用于标识Flash的类型(FWS或CWS);


第5、6、7、8字节表示该Flash文件的大小;


从第9个字节开始读取5 bits,将其值设为n;接着跳过n bits,再读取n bits,设值为x;随后再次跳过n bits,读取n bits,设值为y。Flash的宽度和高度分别等于x/20和y/20像素。

作者最新文章