【发布时间】:2011-04-21 10:45:47
【问题描述】:
我需要以某种方式将 Flash 站点合并到一个可执行文件中。
网站包括: 索引.html 图片 声音 pdf文件 等等
点击合并文件后,需要打开index.html。
这可能吗?
======================================
Adobe AIR 可能对此有用,但我只能创建 setup 可执行文件,也许可以只创建可执行文件?
【问题讨论】:
标签: flash air merging-data
我需要以某种方式将 Flash 站点合并到一个可执行文件中。
网站包括: 索引.html 图片 声音 pdf文件 等等
点击合并文件后,需要打开index.html。
这可能吗?
======================================
Adobe AIR 可能对此有用,但我只能创建 setup 可执行文件,也许可以只创建可执行文件?
【问题讨论】:
标签: flash air merging-data
您可以将任意数量的文件打包到 AIR 应用程序中(尽管导出时间可能会大幅增加)。您不能创建“只是”可执行文件,因为需要安装 AIR 应用程序,而且 HTMLLoader 无论如何都需要单独的页面和图片文件。基本上,你需要做的就是:
要在浏览器中工作的 pdf 文件,用户需要安装 Acrobat。 Flash 内容应该在 mx:HTML 中工作。
更新:
对用户隐藏所有文件更难。我做了类似的事情,不是整个网站,而是嵌入页面和链接的应用程序。
您的所有内容都可以打包到某个 zip 文件中(不是在 exe 中,即使是原生 AIR 应用程序也无法自定义其 exe 包装器。)如果您愿意,您甚至可以加密每个文件。问题在于链接和文件(图片、样式和脚本)。
我用数据 URI 方案解决了图片问题(请参阅我的 question - 自我回答 - 关于这个。)我认为其他文件也可以通过这种方式嵌入。
要使链接正常工作,您需要收听 Event.LOCATION_CHANGE。新位置将告诉 HTML 控件 想要 去哪里(它将无法找到页面),解压缩相应页面并将其设置为 htmlText。
因此,如果您真的希望嵌入所有内容,我会这样做:
【讨论】:
在 OS X 上,您可以将其编译为 .app,这是一个特殊的文件夹,其行为类似于单个可执行文件。我想这在每个平台上都会有所不同,也许最好的解决方案是寻找一些跨平台框架,它还可以捆绑基于 WebKit 的浏览器视图,这样您就不必处理不同的浏览器以及它们如何访问外部每个平台上的文件。
写完后,AIR 可能能够捆绑文件,它有一个StageWebView 控件,可以显示 HTML 内容(不确定是否在里面显示 Flash)。
【讨论】: