(转)SWF文件格式解析

转载 2012年03月21日 17:05:27

先概要的看看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  

疑问:总帧数使用16位表示,这也就是说一般情况下(帧率12fps),flash影片长度为90分钟。

RECT是使用bit-pack的数据结构(如下表),这种方式在swf文件格式中大量使用,

 field len 说明
Nbits 5bits 用于指明后面的每个字段各占几个字节
Xmin nbits  
Xmax Nbits  
Ymin Nbits  
Ymax Nbits  

swf文件结构

swf文件包含一个文件头,接下来就是各种数据包,最后以一个end数据包结尾。每个数据包由tag和数据组成。从长度上来说tag分长tag(24bit)和短tag(16bit)两种。

短tag格式:

field len 说明
tag 16bit 高10bit:类型;低6bit:长度

长tag格式:

field len 说明
tag u16 0x3f
len u32 长度

从类型上来说tag分为definition tag(负责定义文件内容)和control tag(负责控制内容的显示)。从swf8开始有一种特殊的tag——FileAttributeTag,并且它必须是第一个tag。后面的tag所依赖的内容必须在前面的tag中有定义,Stream Sound Tag必须按顺序出现,最后一个tag永远是End Tag。

definition tag在被解析出来之后被记录在dictionary里。dictionary为每个tag进行唯一编号,以供其它tag引用。编号的原则是从1开始顺序编号。


转自:http://blog.csdn.net/mmtogo/article/details/4179266

‍swf文件格式解析入门(tag解析)

上文把文件头解析完成了,接下来就是解析标签 swf文件把所有的资源都打包在标签内部 如字体,位图,嵌入的2进制,代码等等 tag有两种类型,1种为短tag,1种为长tag 短tag的长度是...

‍swf文件格式解析入门(tag解析)

分类: Flash&Flex2012-11-28 13:15 1131人阅读 评论(0) 收藏 举报 上文把文件头解析完成了,接下来就是解析标签 swf文件把所有的资源都打包在标签内部...

‍swf文件格式解析入门(tag解析)

‍swf文件格式解析入门(tag解析)2010-12-02 11:29上文把文件头解析完成了,接下来就是解析标签swf文件把所有的资源都打包在标签内部如字体,位图,嵌入的2进制,代码等等tag有两种类...

swf文件格式解析入门(文件头解析)

这里是使用as3语言来对swf文件做解析,其它语言可以参考。 一,准备工作 从Adobe官网下载一份swf文件格式说明文档 http://www.adobe.com/content/dam/...

SWF文件格式说明

  • 2013年11月16日 13:55
  • 1.14MB
  • 下载

SWF文件格式2(中文翻译版)

接上一篇SWF文件结构(SWF file structure)文件头之后,就是一系列的Tag数据块。所有的Tag使用同一个格式。所以在用程序解析SWF的时候可以跳过不懂的Tag块。Tag块中的数据偏移...

SWF文件格式探秘[一]

SWF文件格式探秘[一]2008年12月21日 星期日 上午 08:43    由于 Macromedia 公司为了推广 Flash,而将 SWF 的文件格式公开,使得 SWF 文件再无秘密可言,从而...

关于SWF文件格式的一些说明

SWF文件头结构如下: 字段            类型           说明 标识            8位             表示文件是否被压缩("46" F 为没有压缩,"43"...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(转)SWF文件格式解析
举报原因:
原因补充:

(最多只允许输入30个字)