"SWF文件格式说明v10"
SWF(ShockWave Flash)文件格式是一种用于存储动画、交互式内容和多媒体的压缩文件格式,主要用于网络应用,如网页中的Flash内容。SWF文件格式规范v10是Adobe Systems Inc.在2006年至2008年间发布的,它详细定义了SWF文件的结构和数据类型,包括基本的数字类型、颜色记录、图形元素、控制标签、动作模型等。
1. **基本数据类型**:
- 坐标和twips:SWF使用像素坐标系统,而twips是用于表示更精确位置的单位,1 twip等于1/20像素。
- 整数类型和字节顺序:SWF文件支持不同大小的整数,并规定了字节的读取顺序。
- 固定点数和浮点数:SWF使用固定点和浮点数来处理图形和动画中的数值计算。
- 编码整数:SWF文件中,整数可以被编码以节省空间。
- 位值和使用位值:文件中通过位操作来存储和解析数据。
- 字符串值:字符串的表示方法及其编码。
- 语言代码:用于标识文件或内容的语言。
- 颜色记录:定义了RGB、RGBA和ARGB颜色记录的格式。
2. **SWF结构概览**:
- SWF头:包含文件版本信息和帧率。
- 文件结构:解释了SWF文件的组织方式,包括标签格式和字典。
- 标签格式:定义了不同的标签类型,用于控制SWF的行为。
- 定义和控制标签:如定义形状、位图、按钮等,以及控制播放的标签。
- 标签顺序:描述了SWF文件中标签出现的顺序。
- 字典:用于存储重复对象的引用。
- 文件压缩策略:SWF支持ZIP压缩以减小文件大小。
3. **显示列表**:
- 切片层:允许内容在特定区域内显示。
- 使用显示列表:构建和管理SWF中的图形和对象。
- 显示列表标签:如PlaceObject、RemoveObject和ShowFrame,用于在舞台上放置、移除和显示帧。
4. **控制标签**:
- 设置背景颜色、帧标签、保护、结束、导出资产、导入资产等标签,控制SWF的显示和行为。
5. **动作**:
- SWF动作模型:描述了SWF中的动作执行机制。
- 动作指令:包括堆栈操作、算术运算、比较、逻辑操作、字符串处理、类型转换、流程控制、变量操作、电影控制和实用工具。
6. **图形**:
- 形状概述和示例:定义了SWF中的形状结构,包括填充样式和线样式。
- 渐变:描述了渐变的变换和控制点。
7. **位图**:
- 定义位图标签:如DefineBits和DefineBitsLossless,用于定义和压缩位图数据。
8. **形状变形**:
- DefineMorphShape:用于定义形状变形,允许对象在两个形状之间平滑过渡。
9. **字体和文本**:
- Glyphtext和devicetext:区分静态文本和动态文本,定义字体和文本记录。
- 高级文本渲染引擎:支持更复杂的文本布局和呈现。
10. **声音**:
- 音频编码格式:SWF支持多种音频编码,如事件声音和流式声音。
- 声音标签:如DefineSound、StartSound和SoundStreamBlock,定义和控制声音播放。
11. **按钮**:
- 按钮状态和跟踪:定义了按钮的不同状态和事件触发。
- 按钮标签和动作:如DefineButton,用于创建交互式按钮。
12. **精灵和电影剪辑**:
- Sprites和MovieClips:用于组织和管理多个图形或动画。
13. **视频**:
- 视频编码格式:SWF支持多种视频编码,如Sorenson H.263、VP6等。
- 视频标签:定义视频流和帧数据。
14. **二进制数据**:
- DefineBinaryData:用于存储二进制数据。
此外,附录提供了对SWF文件的深入解析、标签值的反向索引以及关于Screen Video的色彩空间信息。这个文档对于理解、创建和解析SWF文件至关重要,特别是在Flex、ActionScript和RIA(Rich Internet Application)开发中。