Flash文件一般是可以缩放的,但缩放显示会一影响flash的效果,比如动作变慢或变快。要想以最佳状态显示,就需要获取flash文件的长度和宽度,因此要解析flash文件。这里介绍一个很好用的探测flash文件属性的php class – swfheader.class.php.
使用方法:
引入该文件
Require(‘swfheader.class.php’);
创建一个类的实例
$swf = new swfheader(false); //false 参数意思是禁用debug模式,若要开启请赋值true。
打开你要探测的swf文件
$path = ‘../../’;
$swf->loadswf($path.”myflash.swf”);
获取参数
$width = $swf->width;//宽度,单位像素
$height=$swf->height;//高度,单位像素
还有其他一些属性可以获取,这些信息都储存在$swf数组中,你可以用下面代码来查看这个数组:
<?php
echo “<pre>”;
print_r($swf);
echo “</pre>”;
?>
上面这种写法是为了让数组显示的方式便于阅读,否则就是一行显示开,看着很晕。
输出结果为
swfheader Object
(
[debug] =>
[fname] => main_flash8.swf
[magic] => CWS
[compressed] => 1
[version] => 8
[size] => 2058423
[width] => 980
[height] => 750
[valid] => 1
[fps] => Array
(
[0] => 0
[1] => 30
)
[frames] => 107
)
单独访问成员的方式如下
$swf->width;
$swf->fps[0];
如果打开debug模式,则结果如下
DEBUG: Data values initialized
DEBUG: Opened myflash.swf
DEBUG: Read MAGIC signature: CWS
DEBUG: Read VERSION: 8
DEBUG: Partial SIZE read: 183
DEBUG: Partial SIZE read: 26624
DEBUG: Partial SIZE read: 2031616
DEBUG: Partial SIZE read: 0
DEBUG: Total SIZE: 2058423
DEBUG: RECT field size: 16 bits
DEBUG: RECT binary value: 0000000000000000 (0)
DEBUG: RECT binary value: 0100110010010000 (980)
DEBUG: RECT binary value: 0000000000000000 (0)
DEBUG: RECT binary value: 0011101010011000 (750)
DEBUG: Frame rate: 30.0
DEBUG: Frames: 107
DEBUG: Finished processing myflash.swf
swfheader Object
(
[debug] => 1
[fname] => main_flash8.swf
[magic] => CWS
[compressed] => 1
[version] => 8
[size] => 2058423
[width] => 980
[height] => 750
[valid] => 1
[fps] => Array
(
[0] => 0
[1] => 30
)
[frames] => 107
)
下载swfheader >> [download id=”3″]