如何将flex在线应用程序转换为桌面应用程序?

时间:2011-06-14 14:02:53

标签: flex air blazeds cairngorm

我已经在flex(cairgorn)+ spring + blazeDataservice应用程序中工作了几年,使用blazeDataservice连接到后端,现在它变得很大并且需要花费太多时间来加载,以及使用它的人,通常需要它定期使用它。

我的国家的互联网带宽没有变得越来越好,实际上它变得越来越糟,所以应用程序越来越大,带宽越来越差,因此加载它的速度越来越慢。

我想知道如何让客户端安装在人们的计算机上,我会将一个flex在线应用程序变成一个桌面应用程序,而无需重新设置它。我只需要有人指出我正确的方向,我正在考虑两个选择:

1.-可以变成土坯空气吗?是不是adobe air桌面?

2.-也许闪存在人们的桌面上运行?

我需要一切能够像今天一样对抗主机弹簧后端

非常感谢!

2 个答案:

答案 0 :(得分:3)

要明确:

如果它是应用程序(SWF)本身的大小,而不是正在执行的查询,另一种加速的方法是在不构建桌面(AIR)版本的情况下使用Flex调用模块的方法。

基本上你会把你的应用分成更小的部分,只在必要时加载。

如果您执行桌面(AIR)路由,您可能还希望探索仅在需要时与服务器同步的本地SQLite数据库,从而进一步减少Internet连接问题。

这当然会增加你的开发时间,但考虑到你所描述的情况,这似乎是一个不错的选择。

至于从哪里开始,从Web切换到桌面(AIR)应用程序就像将主MXML标签从(在Flex 3中)mx:Application更改为mx:WindowedApplication并启动应用程序一样简单。

更新后续问题:

很难说在不知道你的代码目前是如何构建的情况下会涉及多少重写,但是怀疑它是一个重大的重写。

作为一项实验,我建议如下:

  1. 创建一个新的Flex应用程序。
  2. 创建一个新模块。
  3. 向模块添加一些简单的MXML和Actionscript。
  4. 将模块的实例添加到主视图中。
  5. 运行/编译。
  6. 您应该看到的是,从功能或编码的角度来看,您可能根本没有将它包装在模块中,但是模块将被编译为单独的SWF,Flex将根据需要处理它

    如果一切正常并且有意义,我会开始将您的代码片段分解为模块,看看是否开始解决您的问题。

答案 1 :(得分:2)

Adob​​e AIR是正确的方法。它本质上是#2,通常你几乎可以直接发布你所拥有的AIR而不是web,它只是有效。花式!