FLASH工具的秘密——SWF2EXE

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

在网上我们能下载到很多精彩的FLASH动画,它们通常*.SWF形式的,如果我们的电脑中没有安装FLASH或FLASH播放器,那么它们就无法在我们的电脑中闪耀。这将是一件非常遗憾的事,我们能否自己用VB写一个工具,将SWF形式的FLASH动画转变成可执行(EXE)形式的呢?当然可以啊,下面我们就一起一步一步的去制作这个小工具——SWF2EXE。

为了编写这个小工具,我们有必要先分析一下SWF形式和EXE形式FLASH文件的基本格式。由于篇幅所限,鉴于网上有很多介绍SWF形式和EXE形式的FLASH文件格式的文章,,我这里仅仅将本程序中所要用到的知识简单说明一下,其他的不再细说,请大家自己参阅相关文章。大家也可使用UltraEdit自行分析。EXE形式文件分为四个部分:FLASH自带的播放器、SWF文件、EXE形式的标识符(16进制表示为56 34 12 FA)和对应SWF文件的大小。

了解了EXE形式FLASH文件的格式,下面我们就用一步一步的编程实现。

第一步:定义资源文件

打开VB,建立一个EXE文件。将FLASH5中自带的播放器FlashPla.EXE添加为自定义资源,保存为工程1.res。属性如下:

类型:"CUSTOM"

编号:101

语言:中文(中国)

第二步:创建程序界面()

控件添加如图一,控件属性默认。

第三步:编写代码

以下内容为本程序代码部分,比较简单,而且注释也较为详细,相信大家能很容易理解。

Private Sub Command1_Click()

Const FILESIZE = 376832 '定义生成的播放器部分大小

Dim exetog As Long '定义EXE形式标识符

Dim filelong As Long

Dim copy() As Byte

copy = LoadResData(101, "CUSTOM") '将资源文件存放在copy()中

Open Text1.Text For Binary As #1 '打开待转换的SWF文件

Open Text2.Text For Binary As #2 '创建将生成的EXE文件

'将播放器以二进制形式写入到中的内容写入文件2中

For filelong = 0 To FILESIZE - 1

Put #2, , copy(filelong)

Next filelong

'将SWF文件写入到文件2中

filelong = LOF(1)

ReDim copy(filelong - 1) As Byte

Get #1, , copy

Put #2, , copy

'写入EXE形式文件标识符

filelong = LOF(2)

exetog = 1193046 '1193046是EXE形式的标识符(56 34 12 FA)中的前三个字节56 34 12的十进制值

Put #2, , exetog

Seek #2, filelong + 4 '调整文件指针到filelong+4字节处

exetog = 250 '250是EXE形式的标识符的最后一个字节FA的十进制值

Put #2, , exetog

Seek #2, filelong + 5 '调整文件指针到filelong+5字节处

'写入SWF文件长度

filelong = LOF(1)

Put #2, , filelong

Close #1

Close #2

End Sub

Private Sub Command2_Click()

End '退出

End Sub

Private Sub Form_Load()

'初始化

form1.caption = "EXE2SWF"

Label1.Caption = "SWF文件路径:"

Label2.Caption = "EXE文件路径:"

Text1.Text = ""

Text2.Text = ""

Command1.Caption = "转换"

Command2.Caption = "退出"

End Sub

http://sl_zyy.y365.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航