swf 文件 打包 exe 方法

Part 1:

用flex做开发,如果直接用在web上,发布为swf放到服务器即可。
如果用在客户端上,可以发布为air,不过air需要air的runtime,如果所做的事情很简单,swf本身就能胜任(没有用本地的api),那发布为air就太重了,swf就够了。但swf不太好用,如果能发布为exe就好了。
用Flash开发,可以publish为exe,用Flex没有这个功能了。
如果搜索一下的话,会发现很简单,网上有很多swf转exe的工具。
不过试用以后会发现,这些工具对flash的swf没有问题,对flex的swf很有可能不能运行。
原因是flex的swf用了一些特殊的包。
其实不用工具,就可以把swf包装为exe,很简单。
在Flash Builder里,首先在构建路径里把库合并到代码中,不能使用RSL或者共享的方式;其次要导出发行版,就是Release版本。
然后运行C:\Program Files\Adobe\Adobe Flash Builder 4\player\win\FlashPlayer.exe,打开swf,然后文件-》创建播放器,就可以导出为exe了。
非常简单,是不是?

image

 

引用:http://blog.wsdd.org/?p=1769

 

Part 2:

Adobe AIR安装率实在太低了。所以很必要对你的air程序进行打包。那个Shu我是没用过,广告打得很猛,但是完全可以用winrar就达到打包air的目的。

1.准备好你需要打包的文件。去你的flex sdk的bin中找到adl.exe,拷贝过来;然后在把flex sdk中的runtimes文件夹也拷贝出来。这些和你需要打包的文件放在同一目录下。如图:

adl.exe和runtimes主要是用来创建Adobe air运行环境,让你的程序能在没有安装Adobe air的机器上也能运行起来。

2.然后,需要了解下adl.exe的使用方法。基本如下:

adl -runtime AIR环境目录 程序的xml配饰文件 — -main 程序主swf文件

根据我的项目,我写了一个run.bat文件,用来调用adl并运行我的air程序,如下:

adl -runtime runtimes\air\win application.xml — -main PhotoCommenter.swf

可以测试下,看看这个文件能不能让你的程序运行起来。如果能正常运行,一切ok。

但是你会发现一个小问题,整个程序运行了,而且还有一个命令行的运行窗口!好别扭是吧。没关系,再写一个vbs文件(姑且明命名为run.vbs,名称可以随意起):

set wshshell=createobject(“wscript.shell”)
wshshell.run “cmd.exe /c run.bat”,0,true

set wshshell=createobject(“wscript.shell”)
wshshell.run “cmd.exe /c run.bat”,0,true

这段代码主要是用来执行run.bat文件,且隐藏那个可恶的命令行运行窗口。保存…

3.然后开始打包。选择所有文件,右键——》添加到压缩文件(你可千万得装了winrar啊!)。在打开的压缩面板中,在常规面板中勾选“创建自解压格式压缩文件”。你会发现默认的压缩文件名变为exe后缀了:

压缩方式最好选择存储,这样你打包后的程序会很快解压缩并运行。

然后切换到高级面板,点击“自解压选项”。在弹出的窗口中,常规面板中设置程序的解压路径以及解压后运行的文件——这个非常重要:

别关闭该窗口,切换面板到“模式”, 勾选“解包到临时文件夹”。在安静模式中,选择“全部隐藏”。

一切ok~~ 打包后的程序就能直接运行了!

4.这个时候你就发现,输出的exe文件的图标是winrar默认的图标。这个好说,下一个更改工具改下即可,不表。另外一个就是,这个exe的图标该了后,程序运行了,你就发现程序的图标竟然是adl.exe的图标——很正常,你用的就是它。所以你还需要将adl.exe的图标也进行相应的修改。

5.最后,你会发现成个exe好大。ok,好好看看runtime文件夹下的文件,把你不要的dll删除。然后重新打包。

功德圆满!

posted on 2011-08-26 12:57  破阵子 . 如是我闻  阅读(1240)  评论(0编辑  收藏  举报

导航