请教:Delphi怎样实现[ swf转exe]以及[ exe转swf]的功能(168分)

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

laohe

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有关于这方面的介绍很乱很散,有没有高手详细介绍一下,谢谢了
以前的位高手介绍过,并公开源码,可惜的是,我调试时总是不能播放。
很可惜,小弟现在真心向诸位学习,取经求教;
 
感兴趣!提一脚!
 
如果你装了flash5, 在files-->import 导入你的.swf文件, 然后 files--->保存.exe文件,

这就ok了。
 
人家是问怎么编程实现!你说的方法我都会!也许应该到官方网站看看哦!

不知道flash的ocx里面有没有相应的函数
 
兄弟!我是说delphi怎么样实现这个功能,我开发制作flash有二年多的时间,这个当然后,
delphi开发出来的软件,怎么样实现该功能,我相信,这个有很多人想了解,大侠有大谅,当
为了普救众生,把这绝招公开吧!
 
你研究过flash的ocx嘛?有没有相应的函数?
 
引用:你研究过flash的ocx嘛?有没有相应的函数?

我看过了,我用了几乎所有的函数,好像没有,相信没有那么简单
 
可能是商业秘密,暂时没有公开
 
在电脑爱好者中有简介 exe to swf的文章,所以这技术没有什么可保密的,要麻就让大家都会,所以我才出题让大家一起论一下。看看集大家的建议能不能,综合出来;相信高手们会出手相救的,因为会的人不会计较这一点点;
 
我找到了!!!有老外在讨论这个!而且有个老外已经写了一个程序用来swf2exe

等着!我在详细看看!

 
有个dll, 好像专门处理swf相关的
 
算了,就这样结束吧
 
http://go8.163.com/jamewee/ART/TECH/20020221a.htm
 
如果能将.swf转化成.fla,那就太神气了!
 
我想ocx控件可能不行
你还的了解swf的格式
swf->flash又不是不可以
有哪个软件
 

{

从问题到结果 ——EXE2SWF的开发手记

作者: 北京 Daffodil   11月27日  16:14

http://www.cfan.net.cn/netschool/cs/20011127/10271625.htm

}
unit FileFormatConvertor;

interface

uses
Classes, SysUtils, Forms;

function Exe2Swf(SourceExe, DestinySwf, Linker: string): boolean;

function Swf2Exe(SourceSwf, DestinyExe, Linker: string): boolean;


implementation

function Exe2Swf(SourceExe, DestinySwf, Linker: string): boolean;
var
// 分别处理EXE、SWF文件的文件流
SourceStream, DestinyStream: TFileStream;
// SWF文件的大小
SwfFileSize: Cardinal;
begin

result := false;
// 打开EXE形式的源文件
SourceStream := TFileStream.Create(SourceExe, fmOpenRead or fmShareExclusive);
try
// 读取文件标志
SourceStream.Seek(- 2 * sizeof(integer), soFromEnd);
SourceStream.ReadBuffer(SwfFileSize, sizeof(integer));
// 判断读到的文件标志是否和FA123456相同
// 借此判断是否是Macromedia官方格式的Flash文件
if SwfFileSize = $FA123456 then

begin

// 读取SWF文件的大小
SourceStream.ReadBuffer(SwfFileSize, sizeof(SwfFileSize));
SourceStream.Seek(- SwfFileSize - 2 * sizeof(integer), soFromEnd);
// 打开目标SWF文件
DestinyStream := TFileStream.Create(DestinySwf, fmCreate);
try
// 从EXE文件流中读取数据
DestinyStream.CopyFrom(SourceStream, SwfFileSize);
result := true;
finally
// OK,释放文件流
DestinyStream.Free;
end;

end;

finally
// OK,释放文件流
SourceStream.Free;
end;

end;



function Swf2Exe(SourceSwf, DestinyExe, Linker: string): boolean;
var
// Source、Destiny、Linker分别是swf、exe和Standalone Player的文件名
SourceStream, DestinyStream, LinkStream: TFileStream;
flag: Cardinal;
SwfFileSize: integer;
begin

result := false;
// 建立EXE文件
DestinyStream := TFileStream.Create(DestinyExe, fmCreate);
try
// 追加Standalone Player
LinkStream := TFileStream.Create(Linker, fmOpenRead or fmShareExclusive);
try
DestinyStream.CopyFrom(LinkStream, 0);
finally
LinkStream.Free;
end;


// 追加SWF文件
SourceStream := TFileStream.Create(SourceSwf, fmOpenRead or fmShareExclusive);
try
DestinyStream.CopyFrom(SourceStream, 0);
// 追加FA123456标志
flag := $FA123456;
DestinyStream.WriteBuffer(flag, sizeof(integer));
// 追加SWF文件长度
SwfFileSize := SourceStream.Size;
DestinyStream.WriteBuffer(SwfFileSize, sizeof(integer));
result := true;
beep;/////////////////////////////////
finally
SourceStream.Free;
end;


finally
DestinyStream.Free;
end;

end;


end.

 
Daffodil:
很棒,留下qq,交个朋友  
 

Similar threads

回复
0
查看
863
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部