1 June 2009
要成功完成本教程,请务必按照 ColdFusion 和 Flash Builder 4 beta 入门中所述设置并测试您的环境:
如果已成功完成本系列中的任何其他教程,您可以跳过上述步骤。
全部
Adobe Flash Builder 4 beta 之前称为 Flex Builder,它可以通过一个十分简单的界面将服务器端数据绑定到 Flex 框架用户界面控件。可以使用“Design”模式拖放组件,从而创建布局并绑定数据。您可以在短短几分钟内创建一个动态填充的应用程序,无需编写任何代码。
在本教程中,您将学会如何使用 DataGrid 和 PieChart 控件,将它们绑定到 ColdFusion Component (CFC) 函数返回的数据。还将了解到如何同步两个控件中的数据。
本教程适用于:
正如介绍部分提到的那样,本教程使用的开发环境与 Getting started with ColdFusion and Flash Builder 4 入门以及本系列中的其他教程相同。在这一部分中,您将再命名一个数据类型,与另一个服务调用一起用于 CFC 函数:
getEmployeeDataByRegion() 函数,并选择“Configure Return Type”(请参阅图 2)。
查询的每条记录将放入 ActionScript 对象中,并在名称/值对中设置每列数据(FIRSTNAME、LASTNAME、EMAIL 等)。每条记录从零开始编写索引。
注意:不同于 ColdFusion,ActionScript 是一种零索引语言。
向导允许您为数据指定返回类型名称,而不是像往常那样将返回数据作为对象进行引用。接下来您将这样做。
注意:这个数据类型不同于 ColdFusion 和 Flash Builder 4 beta 入门教程中定义的 EmployeeSalesData 数据类型,因为它要求您提供一个名为 region 的参数,用于限制数据返回给特定地区的员工。它从数据库返回的数据列也更少。
必须输入参数值 Central 才能返回查询结果。这只是证明查询可以正确运行的一种方法,以便您为它定义返回类型名称。在后续步骤中,您将通过更改代码,真正传递应用程序中的参数值。
您将看到“Data/Services”视图的“Data Types”类别中列出了 EmployeeSalesDataByRegion 数据类型,如图 6 所示。请注意,数据类型的属性是 CFC 方法返回的查询列。
CFC 返回的数据包含与地区相关的员工信息:Northwest、Southwest、Central、Northeast 和 Southeast。请参阅使用 ColdFusion URL 变量部署 Flex 应用程序进一步了解如何将动态数据传递给应用程序。在本教程中,您将对地区值进行硬编码。
在这一部分中,您将 EmployeeDataByRegion 数据绑定到 Flex 框架 DataGrid 控件。要做到这一点,您无需编写任何代码,使用 Flash Builder 内建向导即可生成所有代码。
您将使用 Flash Builder“Design”模式中的拖放功能添加 DataGrid 组件:
注意:实际使用中,您的 Flash Builder 项目中通常只有一个主应用程序文件。使用本系列进行操作时,您将为每个教程新建一个主应用程序文件,以避免创建其他项目。
此时,将“Data/Services”视图中的函数拖放到 DataGrid 控件上,以绑定返回数据:
getEmployeeDataByRegion() 函数。此时将切换到“Source”模式,并将突出显示代码中的 region 变量,用于创建 DataGrid 控件(请参阅图 8)。
Central:protected function dataGrid_creationCompleteHandler(event:FlexEvent):void
{
getEmployeeDataByRegionResult.token = f4CF_Getting_Started_Service.getEmployeeDataByRegion('Central');
}
注意:如上所述,您将把 getEmployeeDataByRegion 函数的属性 region 设置为一个硬编码值。请参阅使用 ColdFusion URL 变量部署 Flex 应用程序进一步了解如何将动态数据传递给应用程序。
您应当看到 DataGrid 控件列标题反映出已绑定数据(请参阅图 9)。
如图 11 所示,您将看到 DataGrid 控件填充了来自 ColdFusion 数据源的数据。
在这一部分中,您将数据绑定到 Flex 框架 PieChart 控件。与 DataGrid 控件相同,您无需编写任何代码就可以做到这一点。
这里依然使用 Flash Builder“Design”模式中的拖放功能将 PieChart 控件加入应用程序布局中:
您应当看到图 12 所示的“Create Chart”对话框。请注意,“Series elements”区域预填充了一个名为“Series 1”的图素。
不需要显示附加到 UI 控件的所有数据。PieChart 控件的“series”属性允许您定义要显示在图表中的具体数据字段。您可以在图表中标出多组数据字段,但在本例中只使用一个。
注意:您可能需要单击“Design”模式按钮右侧的“Refresh”按钮,才能显示图表。您也可以双击包含 MXML 文件名的“Editor”选项卡,展开或折叠“Design”区域。如果“Design”模式左上角显示图例,将它拖放到 PieChart 控件旁。
在这一部分中,您将数据绑定到 PieChart 控件:
getEmployeeDataByRegion() 函数拖放到 PieChart 控件上。 请注意,将 getEmployeeDataByRegion() 函数调用的新实例拖到 PieChart 控件,您实际上在这个应用程序中对这个函数调用了两次:一次针对 DataGrid 控件,另一次针对 PieChart 控件。
您将看到“Bind To Data”对话框(请参阅图 13)。“Configure chart”标题下有一个表格,它包含两列:Series 和 Field。
此时将切换到“Source”模式,并在 PieChart 控件的 getEmployeeDataByRegion() 函数调用中突出显示 region 属性(请参阅图 14)。
Central。注意:记住我们在本教程中将把这个值硬编码。
protected function YTDPieChart_creationCompleteHandler(event:FlexEvent):void
{
getEmployeeDataByRegionResult2.token = f4CF_Getting_Started_Service.getEmployeeDataByRegion('Central');
}
注意:如果系统中没有得到许可的 Flex Builder 3,PieChart 控件上会显示一个水印。
请注意,PieChart 控件数据没有变化。记住,您对服务分别发出了两个调用,并分别检索到返回数据的两个实例。
在这一部分中,您将 PieChart 控件绑定到与 DataGrid 控件的绑定操作相同的数据:
您应当看到图 17 所示的“Bind Operation”对话框和消息。
请注意,“getEmployeeDataByRegionResult”是绑定到 DataGrid 控件的服务调用的结果数据,而“getEmployeeDataByRegionResult2”是绑定到 PieChart 控件的服务调用的结果数据。
在本教程中,您学会了如何使用 Flash Builder 将服务器数据轻松绑定到 Flex 框架组件,以及该操作如何可以实现组件的交互性。要进一步了解服务调用、返回数据以及数据类型,请参阅生成表单教程。
要进一步了解如何配合使用 Flex 和 ColdFusion,请参阅以下教程:
Flex User Forum |
More |
| 02/07/2012 | Newbie - Views |
|---|---|
| 01/24/2012 | How to navigate through the views without losing content? |
| 02/07/2012 | ActionScript rounding issue |
| 02/07/2012 | Setting Value of Static Const |
Flex Cookbook |
More |
| 01/20/2012 | Skinnable Transform Tool |
|---|---|
| 12/12/2011 | Date calculations using 'out-of-the-box' functions |
| 12/05/2011 | String replaceAll in ActionScript |
| 12/04/2011 | Flex: Validate/revert editable Datagrid input value |