将Flash站点合并为一个可执行文件

时间:2011-04-21 10:45:47

标签: flash air merging-data

我需要以某种方式将Flash网站合并为一个可执行文件。

网站包括: 的index.html 图片 声音 PDF文件 等

点击合并文件后,需要打开index.html。

这可能吗?

=====================================

Adob​​e AIR可能对此有用,但我只能创建安装程序可执行文件,也许可以创建只是可执行文件?

2 个答案:

答案 0 :(得分:2)

您可以将任意数量的文件打包到AIR应用程序中(尽管导出时间可能会大幅增加)。您无法创建“只是”可执行文件,因为需要安装AIR应用程序,HTMLLoader无论如何都需要单独的页面和图片文件。基本上,您需要做的就是:

  • 使用mx:HTML作为主要内容创建AIR
  • 指向mx:HTML到应用:/index.html
  • 确保您的站点文件已嵌入到安装程序中(将它们放入src目录中)

要使pdf文件在浏览器中工作,用户需要安装Acrobat。 Flash内容应该在mx:HTML中运行。 的更新
隐藏用户的所有文件更难。我做了类似的事情,不是整个网站,而是带有嵌入页面和链接的应用程序 您的所有内容都可以打包到一些zip文件中(不在exe文件中,甚至本机AIR应用程序也无法自定义其exe包装器。)如果您愿意,甚至可以加密每个文件。问题是链接和文件(图片,样式和脚本) 我用数据URI方案解决了图片问题(请参阅我的question - 自我回答 - 关于此。)我认为其他文件也可以这样嵌入。
要使链接正常工作,您需要收听Event.LOCATION_CHANGE。新位置将告诉HTML控件想要去哪里(它将无法找到页面),解压缩相应的页面并将其设置为htmlText。 所以,如果你真的希望嵌入一切,那就是我要做的事情:

  • 将您的所有文件打包成一个zip文件,以便稍后使用一些具有非顺序zip访问权限的库进行解压缩(我使用了coltware的airxzip)
  • 制作页面服务系统。这包括解压缩页面,扫描它使用的文件(css,js,图片),解压缩文件,将它们转换为base64并嵌入带有数据的页面:URI方案。如果您的文件没有(或很少)在页面之间共享,您可以在打包之前将其嵌入并按原样使用。我不知道Webkit是否通过此协议支持JavaScript,即使没有,您也可以将其转换为基于文本的脚本。

答案 1 :(得分:1)

在OS X上,您可以将其编译为.app,这是一个特殊的文件夹,表现得像一个可执行文件。我想这在每个平台上会有所不同,也许最好的解决方案是寻找一些跨平台框架,它也可以捆绑一个基于WebKit的浏览器视图,这样你就不必处理不同的浏览器以及它们如何访问外部每个平台上的文件。

写完这篇文章之后,AIR可能能够捆绑文件,它有一个StageWebView控件,可以显示HTML内容(不确定是否在里面显示Flash)。