查看文章 |
下一个,说说swf文件的尺寸。 现在已经解析了前面8个数组了,从第九个数组开始,我这个是 80 00 02 51 c0 00 01 96 40 00 ....... 开始跟着我分析 80=10000000 (16进制转2进制) 取前面5位(不要问我为什么,我也不知道。) 10000=16(2进制转10进制) 我们在重新算一下需要的数组数,4×16+5=69,69/8=8.625==9 这样,9个数组就好了。 80 00 02 51 c0 00 01 96 40这个就够了。 ok,明白了,它是以16位来区分的,意思就是,它每16个数字一组,来确定其尺寸。 80 00 02 51 c0 00 01 96 40.......转2进制就是 10000000 00000000 00000010 01010001 11000000 00000000 00000001 10010110 重新划块。 10000 0000000000000000 0100101000111000 0000000000000000 0011001011001000 000 第一块是定义数位 第二块是xmin=0 第三块是xmax=0100101000111000=19000,然后除以20(这个是别人定的,我也不好说什么),950出来了。哈哈,可见xmax=950。 这样一算,width=xmax-xmin=950 如此类推,第四块是ymin=0,第五块是ymax=650。所以,height=650 第六块放弃,丢掉。 这样,swf的尺寸就出来了,950×650 明白了吧? 到现在为止,我们处理了多少个数组了?17,哈哈,好有效啊。 下面,开始处理下面2个数组 下面2个数组是代表了帧频。我的是00 1e,一换算,就是30。恩恩。很好。 接下去2个数组是代表了帧数。我的是01 00 ,这个也要倒序来算,所以,就是1,恩恩,正确。 好了,下一个数组开始,就不是文件头了。开始真正的解析swf了。 接下来,请再详细看看最上面的文章,好好理解一下什么是tag,还有tag的类型。 接下来就来讲解这个tag了。 恩,我们之前已经读到44 11 00 00 00。。。了。 开始分析 由于是字节,要高低位之分,低位在前,高位在后。。(什么是高低位,我这么知道。我就知道这样做而已。) 看这个 44 11=11 44 =0001000101000100 =4420,哈哈。但是由于要判断他的类型,得2进制的东西向左移6位,就是作去掉后六位的意思。这样,实际上就是0001000101=69 看到了,它的tag类型是69,下面我会介绍类型分别代表什么意思的。 后面去掉的那六位,000100=4,不是63,就是二进制的时候不是111111,所以,是短tag,这个就是字节数。 所有,第一个tag包含的东西有 44 11 00 00 00 00 。恩恩,很好很好。 现在来说明一下,tag类型69是代表了什么。 FileAttributes----不是很明白这个是什么,字面意思是文件属性,而且,后面的属性均为0,不清楚。。 我们说到哪了? 到43 02 ff ff ff ...看明白吗? 不用明白,解析出来后就知道了。 43 02=02 43=00000010 01000011 分开解读,0000001001 000011 分别是 tag类型9,字节数为3。恩 意思就是,他的类型是SetBackgroundColor,就是控制背景颜色的了。后面3个字节就是它的属性。 所以,ff ff ff 就是他的背景颜色,可见,是255 255 255的白色。 恩恩,对头。。。 好了,又处理成功一个。。。 继续研究。研究到 7f 05 7a c8 15 00 开始研究文件头 7f 05 =05 7f =0000010101111111 分开 0000010101 111111 tag类型0000010101=21,为DefineBitsJPEG2,哈哈,找到图片了。 长度111111=63,终于出现了,长字节型的,以接下去4个字节为它的大小。(不要问我为什么,就是这样做就好了) 7a c8 15 00=00 15 c8 7a=1427578 哈哈。。图片大小出来了。。 哎。。 怎么多了2个字节? 奇怪了。。 对比一下,图片的文件头是 ff d8 而这个却是01 00 ff d8,可见,虽然不知道前面2个字节是干什么的,但是,去掉。哈哈。 这样就出来了。 图片就这样被我导出来了。。 hoho。 下节课,和大家一齐,弄声音文件出来。hoho 今天我们不来讲导出音乐。 来讲查看代码,就是查看as了。 这个。。。 先来看看 ************************************* ![]() 这个就是包含几普通语句的代码。当然,为了容易解释,我都是用未压缩的swf。 |
