SWF文件格式说明书--SWF文件结构

原创 2004年10月13日 09:33:00

SWF File Structure

SWF文件结构

Following the header is a series of tagged data blocks. All tags share a common format, so any

program parsing a SWF file can skip over blocks it does not understand. Data inside the block can

point to offsets within the block, but can never point to an offset in another block. This enables

tags to be removed, inserted, or modified by tools that process a SWF file.

在文件头后面的是一些标签化的数据块。所有的标签都是用一种通用格式。所以任何程序在解析一个SWF文件时,都可以跳过那些还不明确的块。在每个块中的数据可以指向这个块中的偏移量,但绝不能指向另外一个块的偏移量。这样,在用工具处理SWF文件的时候就任意可以删除、插入和修改(SWF文件不会被破坏)

 

 

Tag Format

标签格式

Each tag begins with a tag type and a length. There are two tag header formats, short and long.

Short tag headers are used for tags with 62 bytes of data or less. Long tag headers can be used for

any tag size up to 4GB, far larger than is presently practical.

每个标签都以标签类型和长度开头。标签头格式有两种,短型和长型。短型标签头用在数据不超过62字节的标签;长型标签头则可用在比实际用到的大小大得多的4GB之内的任何标签中。

 

标签头(短型)

字段

类型

备注

TagCodeAndLength(标签类型和长度)

16

10位:标签类型

6位:标签长度

 

Note: The TagCodeAndLength field is a two-byte word, not a bitfield of 10 bits followed by a bitfield

of 6 bits. The little-endian byte ordering of SWF makes these two layouts different.

The length specified in the TagCodeAndLength field does not include the RECORDHEADER

that starts a tag.

TagCodeAndLength字段是一个占两字节的字,而不是一个10位二进制字段后面跟着6位二进制字段。

If the tag is 63 bytes or longer, it is stored in a long tag header. The long tag header consists of a

short tag header with a length of 0x3f, followed by a 32-bit length.

假如标签是63字节或者更长,它具有长型标签头。长型标签头就好像一个以0x3f开头的短型标签头,后面跟着一个32位长度。

标签头(长型)

字段

类型

备注

TagCodeAndLength(标签类型和长度)

16

标签类型和标签长度(这儿的标签长度不是真实的)合起来是0x3f,包装起来像短型标签头

长度

32

标签长度

 

Definition and Control Tags

定义型标签和控制型标签

There are two categories of tags in SWF:

Definition Tags These tags define the content of the SWF movie the shapes, text, bitmaps,

sounds, and so on. Each definition tag assigns a unique ID called a character ID to the content it

defines. Flash Player then stores the character in a repository called the dictionary. Definition

tags, by themselves, do not cause anything to be rendered.

Control Tags These tags create and manipulate rendered instances of characters in the

dictionary, and control the flow of the movie.

SWF有两种类类型的标签:

定义型标签:这类标签定义SWF影片的内容,如各种形状,文字,位图,声音等等。每个定义型标签在内容被定义都分配了一个唯一的标识号给它,这叫做角色标识(character ID).flash播放器则把这些角色放到一个存储空间里面,这个存储空间我们一般叫它字典。用定义型tag是不会绘制任何图形的,不会产生任何动画的。

控制型标签:这类标签用来产生和操作字典中的角色实例的渲染,并且控制影片的流程。

Tag Ordering in SWF

SWF标签的排序

Generally speaking, tags in a SWF can occur in any order. However, there are a few rules that

must be observed:

1 A tag should only depend on tags that come before it. A tag should never depend on a tag that

comes later in the file.

2 A definition tag that defines a character must occur before any control tag that refers to that

character.

3 Streaming sound tags must be in order. Out-of-order streaming sound tags will result in the

sound being played out of order.

4 The End tag is always the last tag in the SWF file.

总的来说,标签可以出现任何情况的排序方法,但也不是随便乱排, 它遵循一些规则:

1.一个标签只能依靠在它之前的标签,不能依靠在它之后的标签.

2.一个定义了角色的定义型标签必须在引用这个角色的控制型标签之前。

3.流媒体标签必须有顺序,没有顺序的流媒体播放起来也是没有顺序的

4.结束标签(tag)应该在SWF文件的最后。

 

(本文谢绝转载,欢迎指正错误,^_^)

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

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

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

SWF文件头结构如下: 字段            类型           说明 标识            8位             表示文件是否被压缩("46" F 为没有压缩,"43"...
  • lake1314
  • lake1314
  • 2012年02月24日 18:07
  • 2637

swf文件解析(一) 文件header部分解析

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

SWF文件格式说明书--字典

The Dictionary 字典The dictionary is a repository of characters that have been defined, and are availa...
  • flashvan
  • flashvan
  • 2004年10月13日 13:32
  • 3351

SWF文件格式说明书(四)

File Compression Strategy文件压缩策略Since SWF files are frequently delivered over a network connection, i...
  • flashvan
  • flashvan
  • 2005年06月03日 11:34
  • 4505

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

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

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

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

SWC和SWF文件比较 .

在Flash Builder中用Actionscript写的类可以打包成swc或swf, 在Flash CS中制作的元件也可以打包成swc或swf文件, 一个swc或swf文件中可以包...
  • MeetLunay
  • MeetLunay
  • 2013年04月19日 16:05
  • 1471

SWF文件结构研究

代码位置结构含义备注0.1.2固定为46 57 53,也就是字母‘F’‘W’‘S’ 也有的文件为43 57 53,也就是字母‘C’‘W’‘S’“F”表示未压缩,“C”表示压缩式的,“W”无特殊意义“...
  • zhangweizhong007
  • zhangweizhong007
  • 2008年12月25日 13:59
  • 2732

swf文件格式说明书(中文+英文)

swf文件格式说明书(中文+英文)SWF文件头 字段                类型                     备注标识                8位             ...
  • singandsong
  • singandsong
  • 2011年01月05日 16:20
  • 1033
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SWF文件格式说明书--SWF文件结构
举报原因:
原因补充:

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