Flash Builder中的多页数据库应用程序 - 如何访问/调用不同的屏幕?

问题描述:

我想创建我的第一个真实世界的应用程序。它是一个由Flash Builder 4驱动(通过Web服务)应用程序的数据库。Flash Builder中的多页数据库应用程序 - 如何访问/调用不同的屏幕?

该应用程序将拥有超过30多个不同的数据输入表单屏幕,列表屏幕,搜索屏幕等,它们都使用不同的Web服务。

显然我想分解它,以便随着应用程序的增长而变得易于管理,并且使应用程序尽可能快(如果需要加载所有元素,初始加载速度可能会很慢,但我希望它一旦用户“进入”应用程序,就要快)。

我到现在为止的方法是让我的主应用程序(称为布局),然后有一个ViewStack与每个不同的屏幕上。这个效果很好,但是这意味着每次添加一个新的屏幕时都会保留一小段代码(有关此处的信息,请参阅:Swap MXML Component in Application from another Component - Possible?

每组表单都是相关的,所以“客户机”区域的申请有一个数据录入表格,几个表格。加载时我需要传递参数。即。 “加载ID为123的数据输入表单”。

此刻我有一个组件为每个窗体,即。 ClientForm和ClientList。这是一个好方法吗?我应该使用模块吗?

ViewStack是一种有效的方法吗?

如果我开发这样的应用程序,我会拒绝视图堆栈并接受状态。从Flex 2/3开始,它们变得更好了。与视图堆栈相比,状态的主要优点是您没有为子容器创建一些额外的容器/持有者。另一个优点是可以使用字符串标识符切换状态,您可以轻松地将事件与事件一起传递,而无需在字符串标识符和视图之间使用某种映射。只需使用与州名相同的字符串即可。所以它会松散耦合并且非常模块化。

另一个建议是尽可能将您的应用程序分解成小的独立组件/类。尝试将所有对服务器的调用隔离成单独的操作/命令。如果你喜欢它,你可以使用一些架构框架(如Mate,Parsley或其他东西;只是避免Cairngorm或PureMVC)。

预成型分析您的屏幕和呼叫。有没有数量有限的屏幕和电话?未来可能需要添加吗?他们多久会被添加?如果屏幕数量有限,以后几乎不可能添加一个/两个屏幕,则可以将所有状态置于一个MXML组件中,使用事件模型将视图本身提取为单独的组件,以通过自定义事件从它们获取反馈。如果存在相当多的视图,则可以形成一些视图层次结构,将状态分组在单独的子组件上以具有可读(和可维护)的代码。

另一种策略是使用模块,如果有非常多的表单/视图,并且可以定期添加它们。在这种情况下,您应该提供一些配置文件(我建议XML文件)和模块描述。主应用程序加载该配置,然后决定如何加载和显示模块以及侦听和响应哪些事件。

我希望上面列举的方向可以是计划您的应用程序的好起点。祝你好运!

+0

你好,很棒的回应。各国看起来绝对是这条路。再次感谢你的帮助! :) – danbiscuit 2011-04-14 11:29:35

+0

不客气! – Constantiner 2011-04-14 11:32:53