如您所知,我们可以构建基于flex的RIA应用程序。另外,我们可以构建基于AIR的桌面应用程序。我有一个问题,如果我们想要同时构建web &桌面应用程序。我们是否可以使用相同的代码将我们的产品发送到web &桌面?在Flex和AIR之间共享代码
回答
如果您为其设计应用程序,那么在Flex和AIR构建之间共享99%的代码库应该没有问题。
您需要实现Flex/AIR版本独立的应用程序MXML作为AIR使用
WindowedApplication
和Flex使用Application
您需要将您的抽象仅任何AIR的API的使用。也就是说,the Online Documentation中标有AIR-only图标(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/images/AirIcon12x12.gif)的任何类别,属性或方法。如果您使用依赖注入容器(如Swift Suspenders),则可能会更容易找到此过程。
或者,您可以将您的服务定义拆分为两个不同的源树。这将导致您的AIR项目和Flex项目共享一个源路径,但也有它们自己的源路径。这样,访问
com.application.MyService
的代码将在AIR和Flex之间共享,但实现的com.application.MyService
将根据正在使用的“服务源路径”而不同。您可能会发现配置每个版本的编译器标志如
-define+=CONFIG::AIR
很有用。这使您可以使用条件编译,以便为两个构建编译相同的文件,但包含AIR构建的特定代码。
这里是条件编译的〔实施例:
public function getMyService() : IMyService
{
CONIFG::AIR
{
return new MyServiceThatUsesAnAIROnlyAPI();
}
return new FallbackServiceForFlex();
}
不幸的是没有办法“否定”条件标志(即!CONFIG::AIR
),所以你要么需要聪明地使用情况它或包括两个标志(CONFIG::AIR
和CONFIG::FLEX
)
是的,你可以做到这一点。 有一些条件必须在代码中进行控制。请记住,如果应用程序也是一个Flex应用程序,那么它将是一个单独的窗口应用程序。 每一个项目我做需要这个,我创建3个项目
代码库(主控制是一组或帆布)
柔性出口=>当你建立这一点,你将结束柔性应用 它有从#1的主应用程序内的控制
空气出口=>时生成此你最终会与空气应用 它有从#1在主窗口内的控制。
我很惊讶,没有人说这些事,但这是我会怎么做:
- 创建库项目。该项目将包括所有 共享代码。
- 创建Web部署
- Flex项目为AIR部署
无论是Flex和AIR项目可以参考和在库项目中使用的代码创建一个AIR项目。该AIR项目可以使用AIR特定的功能,而不会影响Web项目。
如果您需要执行不同的根据是否使用web项目或AIR项目,你可以在图书馆项目中创建界面,并在主项目使用相应的API实现它们不同的动作。
- 1. 在AddViewController和DetailViewController之间共享代码
- 2. 在NSDocument和UIDocument之间共享代码
- 3. asmx和wcf之间的共享代码
- 4. 在Python代码和C++代码之间共享信息(IPC)
- 5. 在swfs之间共享代码
- 6. 在项目之间共享代码库
- 7. 在SQL Server和库项目之间共享空间代码
- 8. React ES6类之间的代码共享
- 9. 蓝图之间共享代码?
- 10. 片段之间的共享代码
- 11. 在iOS和MacOS之间共享代码 - NSTextField和UITextField
- 12. 如何在Joomla插件和组件之间共享代码?
- 13. xcode - 在Framework和Workspace之间共享代码
- 14. 如何在内部和外部模块之间共享代码
- 15. 在WPF和DNX Web应用程序之间共享代码
- 16. 在iPhone应用程序之间共享视图和代码
- 17. 在Web和非Web应用程序之间共享HttpContext代码
- 18. 在C#和C++代码之间共享对象
- 19. 如何在2个项目之间共享WinForms和代码
- 20. 在Emscripten和Qt之间共享OpenGL代码
- 21. 如何在Eclipse和Android Studio之间共享Java源代码?
- 22. 在iOS和Android项目之间共享代码
- 23. 在紧凑和完整的.NET Framework之间共享代码
- 24. 在Monodroid和Winforms之间共享SQLite代码
- 25. 在Silverlight和WinRT应用程序之间共享代码
- 26. 在Mono和Visual Studio之间共享源代码
- 27. 在WPF和Silverlight之间共享代码的最佳方式
- 28. 如何在Interface Builder和代码之间共享常量?
- 29. 在托管代码和非托管代码之间共享数据库事务
- 30. 共享Silverlight和.NET之间