我可以从相同的源代码生成 Flex Web 和 Air 桌面应用程序吗?

发布于 2024-07-05 02:33:58 字数 139 浏览 7 评论 0原文

我是空气新手。 我有一个现有的 Flex 2 应用程序,我正在考虑将其引入 Flexbuilder 3。我的问题是我可以使用相同的基础应用程序(和源代码)来制作 Air 版本,还是必须维护单独的代码树: 一款用于 Air 版本,一款用于 Flex/SWF 版本?

I'm new to Air. I've got an existing Flex 2 application which I'm considering bringing into Flexbuilder 3. My question is can I use the same base application (and source code) to make the Air version, or would I have to maintain to separate code trees: one for the Air version and one for the Flex/SWF version?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

请远离我 2024-07-12 02:33:58

我发现从同一源创建 Flex 和 AIR 应用程序的最佳方法是对几乎所有代码使用核心库项目,并为 Flex 和 AIR 应用程序使用单独的小项目。

有两个关键概念使其非常强大且易于维护,不仅允许两个应用程序,而且如果您愿意的话,还可以允许许多“版本”。

  1. 模块:- 如果核心应用程序是
    实际上是一个模块(或一个模块
    加载其他模块)你将能够
    轻松创建存根 Flex 和 AIR
    应用程序基本上是
    在那里设置项目属性,
    跨模块的参考类
    通信,然后简单地加载
    核心应用模块
    ModuleLoader。

  2. 工厂对象:- 当有
    您想在 AIR 上做的事情
    您无法使用的桌面应用程序
    在 Flex 应用程序中执行操作,或任何
    如果你想要某事
    各地的工作方式不同
    应用程序,一个工厂对象
    创建项目的实例
    特定课程是一个很好的方法
    它。 例如,您可以致电您的
    “保存”功能,用于 AIR 保存
    到文件系统,但用于 Flex 调用
    网络服务。

    看看 Todd Prekaski 的
    优秀的 Flex DevNet 文章
    构建 Flex 和 Adob​​e AIR
    来自同一代码库的应用程序

    如何做到这一点。

创建要在其中创建主模块的 Flex 库项目后,创建 Flex 和 AIR 应用程序项目。 在两个应用程序项目的属性中,将库项目 src 目录添加到 Flex 构建路径中。 在项目设置中,您还需要将模块添加到 Flex Modules 部分,设置选项以针对项目进行优化。

The best approach I've found to creating both Flex and AIR applications from the same source, is to use a core library project for almost all code, with separate small projects for the Flex and AIR applications.

There are two key concepts that make this very powerful and maintainable, allowing for not just two applications, but for many "editions" if you're so inclined.

  1. Modules:- If the core application is
    actually a module (or a module that
    loads other modules) you'll be able
    to easily create stub Flex and AIR
    applications that are basically
    there to set project properties,
    reference classes for cross-module
    communication, and then simply load
    the core application module with a
    ModuleLoader.

  2. Factory Objects:- When there are
    things you want to do on the AIR
    desktop application that you can't
    do in the Flex application, or any
    case where you want something to
    work differently across
    applications, a factory object that
    creates an instance of a project
    specific class is a great way to do
    it. for example, you can call your
    "save" function, which for AIR saves
    to the file system, but for Flex calls
    a web service.

    Have a look at Todd Prekaski's
    excellent Flex DevNet article on
    Building Flex and Adobe AIR
    applications from the same code base

    on how to do this.

Once you've created a Flex Library project where you're going to create your main module, create your Flex and AIR application projects. In the properties of the two application projects add the library project src directory to the Flex Build Path. While in the project settings you'll also need to add the modules to the Flex Modules section, setting the option to optimise for the project.

揪着可爱 2024-07-12 02:33:58

创建 3 个项目:Air、Web 和 common。 来自空气和网络,包括常见的。

http://simplifiedchaos.com/how-to-compile-both -flex-and-air-application

Create 3 project: Air, Web, and common. from air and web, include common.

http://simplifiedchaos.com/how-to-compile-both-flex-and-air-application

绻影浮沉 2024-07-12 02:33:58

一种方法是将应用程序的大部分放在库中基于组的组件中。

Flex 和 AIR 应用程序都可以将该组件嵌入到它们的窗口中。

如果您需要自定义代码,请让您的 Group 组件接受一个 Interface 对象,该对象具有特定于平台的所有方法(loadFile、saveFile 等)。 每个应用程序都会注入一个适当实现这些方法的对象。

我开发过一个产品,该产品注入了整个本地数据访问层(到 SQLite 数据库),并且核心应用程序不知道它是在浏览器中运行还是在桌面上运行(连接或断开连接)。

干杯

One way is to put the bulk of the application in a Group-based component in a library.

Both Flex and AIR applications can embed that component in their Window.

If you need to have custom code, have your Group component accept an Interface object that has all the methods that are specific to a platform (loadFile, saveFile, etc.). Each application injects an object that implements these methods appropriately.

I've worked on a product that injected a whole local-data access layer (to the SQLite database) and the core application had no idea if it was running in a browser or on the desktop (connected or disconnected).

Cheers

俏︾媚 2024-07-12 02:33:58

您可以使用相同的。

You can use the same.

逆蝶 2024-07-12 02:33:58

您不能在同一个 Flex Builder 项目中混合使用 AIR 和 Flex,但可以共享代码。 以下是如何...

  1. 创建一个基于 Flex 的项目
    通常会。
  2. 创建第二个基于 AIR 的项目。
  3. 在第二个应用程序中,转到
    项目->属性。
  4. 选择“Flex 构建路径”选项。
  5. 在“源路径”下添加文件夹
    其中包含来自您的来源
    第一个基于 Flex 的项目。

现在,两个项目共享 Flex 项目中的代码。

您需要小心,不要在打算在两个应用程序之间共享的代码中使用仅限 AIR 的 API。

You can't mix both AIR and Flex in the same Flex Builder project, but you can share code. Here's how...

  1. Create a Flex based project as you
    normally would.
  2. Create a second AIR based project.
  3. In the second application, go to
    project->properties.
  4. Select the "Flex build path" option.
  5. Under "Source Path" add the folder
    that contains the source from your
    first Flex based project.

Now both projects share the code from the flex project.

You need to be careful not to use AIR only API's in code you intend to share between both apps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文