我可以从相同的源代码生成 Flex Web 和 Air 桌面应用程序吗?
我是空气新手。 我有一个现有的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我发现从同一源创建 Flex 和 AIR 应用程序的最佳方法是对几乎所有代码使用核心库项目,并为 Flex 和 AIR 应用程序使用单独的小项目。
有两个关键概念使其非常强大且易于维护,不仅允许两个应用程序,而且如果您愿意的话,还可以允许许多“版本”。
模块:- 如果核心应用程序是
实际上是一个模块(或一个模块
加载其他模块)你将能够
轻松创建存根 Flex 和 AIR
应用程序基本上是
在那里设置项目属性,
跨模块的参考类
通信,然后简单地加载
核心应用模块
ModuleLoader。
工厂对象:- 当有
您想在 AIR 上做的事情
您无法使用的桌面应用程序
在 Flex 应用程序中执行操作,或任何
如果你想要某事
各地的工作方式不同
应用程序,一个工厂对象
创建项目的实例
特定课程是一个很好的方法
它。 例如,您可以致电您的
“保存”功能,用于 AIR 保存
到文件系统,但用于 Flex 调用
网络服务。
看看 Todd Prekaski 的
优秀的 Flex DevNet 文章
构建 Flex 和 Adobe 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.
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.
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.
创建 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
一种方法是将应用程序的大部分放在库中基于组的组件中。
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
您可以使用相同的。
You can use the same.
您不能在同一个 Flex Builder 项目中混合使用 AIR 和 Flex,但可以共享代码。 以下是如何...
通常会。
项目->属性。
其中包含来自您的来源
第一个基于 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...
normally would.
project->properties.
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.