SWF文件格式规范v10详解

需积分: 9 1 下载量 108 浏览量 更新于2024-07-24 收藏 942KB PDF 举报
"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)开发中。