SWF文件格式解析
2009-05-13 21:15
295 查看
先概要的看看swf文件格式(swiff),swf设计的几个目标是:
1、适合屏幕显示。支持抗锯齿,可以快速的渲染成各种像素格式的位图,支持动画,支持交互按钮。
2、可扩展。使用标记语言,在保持对以前标记兼容的前提下可以扩展新规格。
3、易于在网络上传输。一方面要求swf文件尽可能的小,对swf进行压缩(算法来源ZLIB),还大量使用bit-pack组织数据结构,另一方面要求flash播放器支持流式渲染,且swf不能对网络带宽做任何假设。
4、简单。文件格式尽量简单以方便flash播放器的实现,使其尽可能少的依赖于本地OS特殊,更易于移植。
5、独立。所有资源不再需要依赖其它外部文件。比如字库。
6、弹性。swf可令flash播放器工作在硬件能力受限的环境下,并且可以充分利用硬件能力。
7、高速。高速、高质量的渲染。
8、可被脚本控制。
field | type | 说明 |
signature | u8 | 'F'表示未压缩,从swf6开始才支持;'C'表示压缩 |
signature | u8 | 'W' |
signature | u8 | 'S' |
版本号 | u8 | 1表示swf1 |
文件长度 | u32 | 文件总长度,对于CWS来说是解压之后的文件长度 |
影片尺寸 | RECT | twips表示的RECT。1twip=1/20pixel |
帧率 | u16 | 以8.8表示的浮点数 |
总帧数 | u16 |
RECT是使用bit-pack的数据结构(如下表),这种方式在swf文件格式中大量使用,
field | len | 说明 |
Nbits | 5bits | 用于指明后面的每个字段各占几个字节 |
Xmin | nbits | |
Xmax | Nbits | |
Ymin | Nbits | |
Ymax | Nbits |
swf文件包含一个文件头,接下来就是各种数据包,最后以一个end数据包结尾。每个数据包由tag和数据组成。从长度上来说tag分长tag(24bit)和短tag(16bit)两种。
短tag格式:
field | len | 说明 |
tag | 16bit | 高10bit:类型;低6bit:长度 |
field | len | 说明 |
tag | u16 | 0x3f |
len | u32 | 长度 |
definition tag在被解析出来之后被记录在dictionary里。dictionary为每个tag进行唯一编号,以供其它tag引用。编号的原则是从1开始顺序编号。
相关文章推荐
- swf文件格式解析入门(文件头解析)
- swf文件格式解析入门(文件头解析)
- swf文件格式解析入门
- swf文件格式解析入门(tag解析)
- swf文件格式解析(二)
- swf文件格式解析入门(tag解析)
- swf文件格式解析(一)
- swf文件格式解析入门(tag解析)
- (转)SWF文件格式解析
- swf文件格式解析(一)
- swf文件格式解析(二)
- swf文件格式解析入门(文件头解析)
- swf文件格式解析(二)
- swf文件格式解析入门(文件头解析)ZT
- Cocos2dx杂记:cocos2dx解析csv格式文件
- mp4文件格式解析(三)
- bmp文件格式的解析与显示
- JPEG文件格式解析
- FLV文件格式解析
- CSV格式文件解析