0

我需要以某种方式将闪存站点合并到一个可执行文件中。

网站包括: index.html 图片 声音 pdf 等。

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

这可能吗?

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

Adobe AIR 可能对此有用,但我只能创建 setup 可执行文件,也许可以只创建可执行文件?

4

2 回答 2

2

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

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

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

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

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

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

于 2011-04-21T11:19:57.773 回答