用Delphi 查看flash的swf文件的信息?(100分)

  • 主题发起人 主题发起人 ledo
  • 开始时间 开始时间
L

ledo

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得知,Swf文件的每秒帧数和版本号?
 
用UltraEdit打开一个SWF文件,你会在偏移地址3H和12H处发现版本号和帧率!在Delphi中
读出它即可。
 
那屏幕尺寸大小该如何得到呢?
 
swf 的格式定义: http://www.openswf.org/spec/SWFfileformat.html
 
使用swf的ocx,应该更容易得到。
 
to yysun:
这个我早看过了,可就是看不懂关于Frame Size的“RECT”类型是什么,它的说明仅仅是
:“Frame size in TWIPS”。
 
TWIPS 是长度单位,1 TWIPS = 1/20 个像素 = 1/1440 英寸 = 1/567 厘米

RECT 的定义在这里: http://www.openswf.org/spec/SWFfilereference.html
RECT Rectangular region
The format for a rectangular value within the file is described in the following table:
Field Type Comment
Nbits nBits = UB[5] Bits in each rect value field
Xmin SB[nBits] X minimum position for rect
Xmax SB[nBits] X maximum position for rect
Ymin SB[nBits] Y minimum position for rect
Ymax SB[nBits] Y maximum position for rect
这里的5个数字:第一个 nBits 为无符号的 5个 bit 的整数(UB[5]),表示下面下面四个
数字的位长度,例如, nBits = 16,那么 Xmax,Ymax 最大就是 32678,因为它们以
TWIPS 为单位,能够表达的最大像素值就是 1638。

而 Flash SWF 最大可以做到 2880 x 2880,因此 nBits 需要为 17,即 Xmax,Ymax 为
17 bit 的有符号整数。

这里需要用到很多位 (bit) 操作,Have fun !
 
孙老师,你对flash 很有研究,帮我看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1207733
谢谢
 
这么复杂?干脆,高手们能不能写个读取SWF文件头的函数?相信有很多人都需要这个函数。
 
我也碰到了这个问题了。
 
孙老师,你对flash 很有研究,帮我看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1207733
谢谢
 
后退
顶部