(转)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文件解析(一) 文件header部分解析

SWF(shock wave flash)是ADOBE公司的动画设计软件Flash的专用格式。
  • HundredBai
  • HundredBai
  • 2015年11月04日 21:13
  • 1914

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

分类: Flash&Flex2012-11-28 13:15 538人阅读 评论(0) 收藏 举报 这里是使用as3语言来对swf文件做解析,其它语言可以参考。 一,准备工作 从...
  • oMingZi12345678
  • oMingZi12345678
  • 2015年05月30日 21:46
  • 1477

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

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

SWF文件格式说明书--SWF文件头

 SWF文件头字段类型备注标识8位标识字节:F代表未压缩C代表已压缩(SWF6以后的版本特有)标识8位代表W标识8位代表S版本号8位代表SWF文件的版本,比如0x06代表SWF6文件长度32位整个文件...
  • flashvan
  • flashvan
  • 2004年09月30日 11:03
  • 11444

‍swf文件格式解析入门

‍swf文件格式解析入门(tag解析) 分类: Flash&Flex2012-11-28 13:15 275人阅读 评论(0) 收藏 举报 上文把文件头解析完成了,接下来就是解...
  • worldy
  • worldy
  • 2014年02月23日 18:16
  • 917

(五)java实现文档的在线浏览-转换pdf的同时转为swf

网上资料有很多office文档转为pdf,pdf转为swf,但都是单步转换。关于一起转换的资料比较少。 一起转换有个问题就是转为pdf时,这个转换过程将花费一段时间才能成功,如何控制在pdf转换...
  • u012454773
  • u012454773
  • 2015年05月28日 10:58
  • 1433

swf文件格式解析(一)

最近一直在研究加密,一层一层加进去,终于对swf结构算有了一个清晰的认识,本回合重点说文件头的解析为了引起大家的性趣,先引用前辈的一个例子吧 上边是一个swf导出类查看器,拿到类名 导出素材不难,如何...
  • zjyhjwll
  • zjyhjwll
  • 2011年07月26日 10:29
  • 593

SWF文件格式解析

 先概要的看看swf文件格式(swiff),swf设计的几个目标是:1、适合屏幕显示。支持抗锯齿,可以快速的渲染成各种像素格式的位图,支持动画,支持交互按钮。2、可扩展。使用标记语言,在保持对以前标记...
  • mmtogo
  • mmtogo
  • 2009年05月13日 21:15
  • 748

swf文件格式解析(二)

原文地址:swf文件格式解析(二)作者:爱与痛的边缘 上一篇教程可能写的有点乱 ,本回合开始之前先做一个概述吧,引用官方白皮书的原文   概述 SWF 文件是由一个文件头,和跟在后面的一系列...
  • iloveayu
  • iloveayu
  • 2017年08月05日 17:43
  • 60

把pdf文档转化为swf并显示

以前曾经写过一篇把office文档转化为pdf的文章,在web中大多数都是使用flash来查看文档或者其他东西,因为我们不可能都会安装adobe reader,可是flash player我们都会安装...
  • chenwill3
  • chenwill3
  • 2011年09月23日 12:41
  • 1838
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(转)SWF文件格式解析
举报原因:
原因补充:

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