注册 登录
销售与市场官方网站 返回首页

刘韩的个人空间 https://www.cmmo.cn/?78163 [收藏] [复制] [RSS]

日志

Flash解码小结

已有 80572 次阅读2009-2-17 23:45

今天把FLASH解码这一块小结一下.

Flash文件的组成:文件头 + 数据区
数据区的组成:由各种类型的TAG + 对应的数据.
TAG就是各种数据的ID.
比如FLASH要画一个矩形.FLASH组成的时候就有一个矩形的ID值.
这个ID值是唯一的.当发现对应的ID值后,FLASH就认为找到了矩形.
当你知道是矩形后怎么办.你要画矩形,当然要知道矩形的大小.
还有相对位置吧,另外还有边界线宽的的大小.另外还有背景色,前景色之类的属性.
那如何得到这些数据呢,这些数据在哪里?
这些数据是紧接着TAG之后.可以通过解析TAG得到数据区的数据.
即然FLASH是这样组成,那FLASH是如何标志结束的呢?
回答FLash也是用TAG来标志结束的.当TAG ID为零时,Flash就认为文件已经结束.

有了上述简单介绍之后,相信大家对FLASH有了大致的了解了.
那让我们来看看二进制数据是如何分布的,又代表了哪些意思.

用UtrEdit打开FLASH文件,查看文件的二进制数据.
还有一重要的说明FLASH是小字节序存储的.
如图:



大家看Blue色的部分就是FLASH文件的文件头.
文件头包括的信息也挺多,让我们来看看.
前三个字节:
代表文件的格式.格式有二种(FWS/CWS).
FWS代表:文件不是压缩的
CWS代表:文件是压缩的
紧接着一个字节:
代表FLASH的版本.比如:FLASH5/FLASH6...
紧接着四个字节:
代表FLASH文件总的长度.
紧接着八个字节:
这8个字节包含了,帧的大小和一些预留位
紧接着二个字节:
代表帧率.也就是第秒钟播放多少帧
再接着二个字节:
代表帧数.也就是当前FLASH文件总共有多少帧
到此为止文件头聊完了!

那让我们接着看看数据区部分吧.因为FLASH定义的TAG有很多.我们不可能
玫举出来一个个的讲解.只能举个例子供大家参考了.
通过文件头完了之后,就是背景的TAG了.让我们来解释一下.FLASH播放器是如何
解析的.

首先聊一下TAG.什么是TAG?它由什么组成?
TAG是ADOBE官方定义的一些唯一的数据标识
TAG是由TAG类型+TAG长度组成
FLASH的TAG有二种,第一种是长TAG由六个字节,另外是短TAG有2个字节.
长TAG是由六个字节组成.前16位是:TAG类型 + 0X3F,后32位是TAG长度
短TAG是二个字节组成.前十位表示TAG类型,后六位表示TAG长度
那到底什么时候是长TAG,什么时候是短TAG呢?
Each tag begins with a tag type and a length. The tag-header formats can be either short or
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 4 GB, far larger than is presently practical.
翻译解释为:Tag小于62个字节时是SHORT类型的.大于62字节时是LONG类型的.
如下图


紧接成文件头下面第一个TAG是SetBackgroundColor.
此TAG为短TAG.前十位代表TAG的ID,后6位代表的是长度.
这样此TAG16位二个字节为:0X4302 二进制为(切记小字节序)0000 0010 0100 0011
前十位为:0000 0010 01 = 00 0000 1001 = 9
后六位为:00 0011 = 3
说明此TAG ID = 9;
TAG长度为3
TAG长度即为接下来3位数据 是TAG的数据
所以这样就有
R = 0xff
G = 0xff
B = 0xff
这样当然背景是白色了.

其他TAG的解析和这也一样,请大家自行尝试!!!
想必大家看完文章后,大致对FLASH有所了解了.

路过

鸡蛋

鲜花

握手

雷人
收藏 邀请 举报 分享到  

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证码 换一个

销售与市场官方网站 ( 豫ICP备19000188号-5

GMT+8, 2024-6-3 18:03 , Processed in 0.028933 second(s), 16 queries .

Powered by 销售与市场网 河南销售与市场杂志社有限公司

© 1994-2021 www.cmmo.cn

回顶部