打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SWF文件基本数据类型

SWF文件基本数据类型

 

SWF文件基本数据类型Basic Data Types

swf文件里面有很多复杂的数据类型,但是这些复杂的数据类型都是由一些基本的数据类型组成的。

 

    一、坐标和缇

    swf文件格式用整数来存储坐标,它的单位默认的是缇(twip)20 twip=1 pixel。这点和VB是类似的。在没有缩放的情况下,就是100%播放时,swf中的一个逻辑像素和屏幕上的一个像素是对应的。使用缇的好处就是能够获得比使用像素更高的精度。比如,一个800twips宽,400twips高的矩形,就会被解释成40×20像素的大小,这时矩形的边缘是没有锯齿的。如果是790×390twips的话,它的就会有轻微的模糊边缘。

    swf的坐标系里面,它采用的是传统的图像的坐标,x轴是水平方向,并且是从左到右值是增大的;y轴是垂直方向的,并且从下到上是增加的。

 

 

    二、整数类型和位顺序

    swf文件中使用的8位、16位、32位、64位有符号和无符号的整数。这些整数在swf文件中是以

 

little-endian的顺序来存储的,而每个字节的每一位则是按big-endian的顺序来排列的。

     比如一个32位的整数:0x456e7120

     它在文件中就是以

                         20 71 6e 45

的格式存储的,这种方式就称为little-endian,而其中每个字节的每一位则是按big-endian的形式来存储的。little-endian主要用在我们现在的PCCPU中,big-endian则应用在目前的Mac机器中(是指Power系列处理器)。并且在swf文件中,所有整数必须是位齐的。

 

    三、定点数

    swf文件格式支持两种类型的定点数:32位定点数和16位定点数。32位定点数的格式是16.16格式的,小数点前面和小数点后面的每一部分各占2个字节。并且也是采用了little-endian的形式。比如一个32位的浮点数:7.5=0x0007.8000在文件中就是以00 80 07 00的形式存储的。

     16位的定点数和32位的是类似的,采用8.8格式,也是little-endian的形式。16位的定点数是在Flash8及其以后版本中才被支持的。

  

    四、浮点数

    swf8及其后续的版本中支持和IEEE Standard 754兼容的浮点数类型。一共有三种类型,分别是:Half-precision (16-bit)floating-point numberSingle-precision(32-bit)单精度、Double-precision (64-bit)双精度。除了半精度的这种浮点型数据以外,其它两种都符合IEEE Standard 754的标准。半精度的也是和IEEE Standard 754类似的,只是改变了标准中分配给尾数和指数的位数。在半精

 

度型的浮点数中,一位作为符号位;5位是分配给指数部分,实际的指数是5位数表示的数和16的差值;剩余的10位用来表示尾数。

 

    五、位值

    位值是用多少位来表示一个数值是不确定的,也就是说,表示值的时候,位数是可变的。它可以表示三种类型的数值:无符号整数、有符号整数和有符号的16.16格式的定点数。位值不是位齐的,而其它一些数据类型,比如前面提到过的无符号整数等都是必须位齐的。如果一个位齐的数据类型后面跟着一个位值,那么最后几位如果不能填满的话,应该用0补齐。

 

并且以上这些数如果需要扩展的话,是按符号扩展来进行扩展的。

 

   六、字符串类型

   字符串类型就是指以空字符结尾的字符的序列。字符值的格式就是一些字节的序列,这个序列以空字符字节结束。

 

    swf5及以前的版本中,字符串类型不是使用ANSCII编码就是采用shift-JIS(a Japanese encoding)。并且我们没有办法确定它到底采用的是哪种编码方式,具体如何解码是由播放的时候,播放器根据本地的情况自动检测的。这样就很容易出现错误。在swf6及以后版本中,字符串的值经常使用Unicode UTF-8编码。它是一种多字节的编码方式,它对字符编码使用1-4个字节。UTF-8编码是ASCII的一个超集,在0-127之间的字符排列顺序是按照ASCII中的顺序来进行排列的。UTF-8保证除了空字符以外的所有字符都使用一个以上的字节来表示,并且这些字节里面没有一个字节的值为0。空字符用一个字节来表示。这就保证了在一个字符串里面不会出现不希望出现的空字符。

       WideCharToMultiByte(CP_ACP,0,filebuffer+1,length/2,str,100,NULL,NULL);//length/2unicode字符的个数。

 

    七、语言代码

     一个语言编码标识了一种口语,语言代码和swf文件格式中的字体的定义有关。但是它不决定文本的编码,它仅仅是标识了一种口语。它在swf文件中占有一个字节。Flash播放器利用语言代码来确定动态文本框中的换行规则,并且用来确定在当前设备字体不存在的时候选择什么样的替换字体。如果语言代码为零的话,这个语言代码就由播放器根据计算机的区域设置自动判断。

    Flash播放器能够识别的语言代码一共有一下几种:

       1.拉丁字符,包括西方的一些语言,比如英语、法语、德语等等。

       2.日语

       3.韩语

       4.简体中文

       5.繁体中文

 

 

 

swf文件中的基本数据类型:

 

1、坐标和缇Coordinates and twips

 

 swf文件格式以整数形式存储x-y坐标,通常使用一种叫做twip的度量联合。在swf格式中,1twip等于1/20逻辑象素。在无缩放状态下,当文件以100%大小播放时,1逻辑象素跟1屏幕象素相等。

 

        比如,一个800twips×400twpis的矩形大小就是40×20逻辑象素。使用象素大小一些情况下会有失真现象。一个790×390twips的矩形(也就是39.5×19.5象素)会出现细小的模糊边框。

 

       Twips是在大小和精度之间协调的好方式。

 

       SWF文件格式中的坐标采用传统的图形轴:x是水平的,最小值在左边。y是垂直的,最小值在上面。

 

2、整数类型和位顺序Integer types and byte order

 

 swf文件格式使用8位、16位、32位、64位,有符号型、无符号型整数类型。存储在swf文件中的-所有整数-采用

little-endian(小尾)字节顺序:低位在前,高位在后(the least significant byte is stored first, and the most significant byte is stored last,),跟Intel x86结构一样。而-字节内的位-则使用big-endian(大尾)顺序:高

 

位在前,低位在后。比如:32位数值0x456e7120被保存为20 71 6e 4516位数值0xe712被存储为12 e7

 

     所有的整数类型必须字节对齐。也就是说,一个整数的第1位必须存储在SWF文件一个字节的第1位。

 

     使用传统的2's-complement位类型表示有符号型整数。在2's complement系统中,负数的第1位必须是1,而0和整数的第1位是0。一个负数,-n,被表示为非负整数n-1的按位取反。

 

类型                          描述

SI8                       8位有符号整数

 

SI16                      16位有符号整数

 

SI32                      32位有符号整数

 

SI8[n]               长度为n8位有符号整数数组

 

SI16[n]              长度为n16位有符号整数数组

 

UI8                       8位无符号整数

 

UI16                      16位无符号整数

 

UI32                      32位无符号整数

 

UI8[n]               长度为n8位无符号整数数组

 

UI16[n]              长度为n16位无符号整数数组

 

UI24[n]              长度为n24位无符号整数数组

 

UI32[n]              长度为n32位无符号整数数组

 

UI64[n]              长度为n64位无符号整数数组

 

3、定点小数Fixed-point numbers

 

SWF文件格式支持2种类型的定点小数:32位和16位的。

 

32位定点小数是16.16,也就是,高16位表示数字的整数部分,低16位表示小数点后的部分。定点数的存储格式跟32位整数一样(使用little-endian字节顺序),并且必须要位对齐。比如:实数7.5等于0x0007.8000,存储顺序是00 80 07 00SWF8及后续版本支持168.8形式的定点小数。高8位表示小数点前的部分,低8位表示小数点后的部分。

 

定点小数类型

 

类型                 描述

FIXED          3216.16定点小数

FIXED8         168.8定点小数

 

4、浮点小数Floating-point numbers

 

SWF8和以后的版本支持IEEE标准754浮点类型。

 

浮点小数类型

 

类型               描述

FLOAT16     半精度16位浮点小数

FLOAT       单精度32IEEE标准754兼容

DOUBLE      双精度64IEEE标准754兼容

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
c# 整数类型
计算机组成原理——定点数的表示
将 Linux 应用程序移植到 64 位系统上
DICOM VR数据类型表
mysql 字段类型说明
Python字符串格式化 - 一杯苦咖啡 - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服