【问题标题】:Merge flash site into one executable将 Flash 站点合并为一个可执行文件
【发布时间】:2011-04-21 10:45:47
【问题描述】:

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

网站包括: 索引.html 图片 声音 pdf文件 等等

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

这可能吗?

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

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

【问题讨论】:

    标签: flash air merging-data


    【解决方案1】:

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

    • 以 mx:HTML 作为主要内容创建 AIR
    • 将 mx:HTML 指向 app:/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 并使用 data:URI 方案嵌入到页面中。如果您的文件没有(或很少)在页面之间共享,您可以在打包之前嵌入它们并按原样使用。不知道 Webkit 是否通过这个协议支持 JavaScript,即使不支持,你也可以将其转换为基于文本的脚本。

    【讨论】:

    • 安装 .air 后,我拥有所有文件,就像打包前一样,但我需要以某种方式对用户隐藏所有文件(当然可执行文件除外)。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多