在“架构”选项卡中处理架构(仅限于 Flash Professional)

“架构”选项卡能让您查看选定组件的架构。架构包含组件的可绑定属性、它们的数据类型、它们的内部结构以及各种特殊属性的列表。数据绑定功能需要此信息才能正确处理数据。

“架构树”窗格(“架构”选项卡的顶部窗格)显示选定组件的可绑定属性,以及它们由一个或多个架构字段表示的内部结构(组件属性和架构字段也称为架构项目)。“架构属性”窗格(“架构”选项卡的底部窗格)显示有关选定架构项目的详细信息。

注意:所有组件均具有属性,但在默认情况下,为了避免 UI 过于混乱,“架构”选项卡只显示通常包含动态数据的那些属性。这些属性称为可绑定属性。通过手动将属性添加到架构面板或使用动作脚本代码,您可以绑定到任何属性。请参阅在“绑定”选项卡中处理绑定(仅限于 Flash Professional)

组件的架构描述数据的结构和类型,但与数据的实际存储方式无关。例如,WebServiceConnector 组件或 XMLConnector 组件中的结果可以具有相同的架构,即使 Web 服务结果存储为动作脚本数据结构(对象、数组、字符串、布尔值和数字),而 XMLConnector 组件结果存储为 XML 对象。使用数据绑定访问组件架构内的字段时,您可以使用相同的过程,不管数据是如何存储的。

组件标识了它的哪些属性是可绑定的。这些可绑定属性以顶层架构项目(组件属性)的形式出现在“架构”面板中。组件属性可以具有自己的内部结构(架构),该结构定义可绑定到应用程序内其他组件属性的附加属性(架构字段)。您为 WebServiceConnector 组件对 WSDL 进行内部检查就是一个很好的实例。WSDL 定义描述 Web 服务的参数和结果。WebServiceConnector 组件包含两个可绑定属性(paramsresults)。当 WebServiceConnector 组件对 WSDL 进行内部检查时,创作工具将自动为 paramsresults 属性创建架构,以便它映射 WSDL 内定义的架构。

为组件创建架构的方法有多种:

导入示例 XML 文件以用作架构

当您导入示例 XML 文件用作架构时,Flash MX Professional 2004 将检查示例文档并创建一个架构,该架构代表文档的 XML 元素和属性以及文本值的数据类型(数字、布尔值或字符串)的嵌套结构。任何出现多次的元素在架构中显示为数组。

要导入示例 XML 文件为组件属性定义架构:

  1. 选择组件属性。
  2. 执行以下其中一项操作:
    • 单击“架构”选项卡右上角的“导入示例架构”按钮。
    • 单击“组件检查器”面板右上角的选项菜单控件,并从菜单中选择“导入 XML 架构”。
  3. 在“打开文件”对话框中,选择一个 XML 文件。XML 文件是数据的代表性示例。

    架构出现在“架构”选项卡中。现在即可在 XML 元素和应用程序内的组件属性之间创建绑定。

    注意:某些 XML 文档可能具有 Flash MX Professional 2004 无法表示的结构,例如,包含混在一起的文本和子元素的元素。

将架构字段添加到架构项目

使用以下过程将架构字段添加到架构项目。

要将架构字段添加到架构项目:

  1. 在“架构”选项卡中,选择要添加字段的架构项目。
  2. 单击“在所选字段下添加一个字段”(+) 按钮。

    新字段即被添加为选定属性的子字段。

  3. 在“架构属性”窗格中,输入“字段名称”的值。适当填写其他属性。

    视架构项目的类型而定,有三种可能的方案:

    • 对象类型的架构项目,可能具有子字段和/或 @ 属性
    • 数组类型的架构项目,始终正好具有一个名为 [n] 的子字段,该子字段可以为任何类型(包括对象、字符串等)
    • 其它类型(如布尔值、字符串、数字)的架构项目,不具有子字段,但可能具有 @ 属性

将组件属性添加到架构

如果将任何组件属性添加到架构,您可以使它们成为可绑定属性。以下过程说明如何创建使用 CheckBox 组件指示 TextInput 组件是否可编辑的应用程序。然而,在本示例中,TextInput 组件的 editable 属性不可绑定,因此必须修改它的架构。

要将组件属性添加到架构:

  1. 将 TextInput 组件和 CheckBox 组件的实例添加到应用程序,并为它们指定实例名称。
  2. 选择 TextInput 组件,然后单击“组件检查器”面板上的“架构”选项卡。
  3. 单击“架构”选项卡左上角的“添加组件属性”(+) 按钮,以便添加组件属性。
  4. 在“架构属性”窗格(“架构”选项卡的底部窗格)中,输入 editable 作为字段名的值,并选择“布尔值”作为数据类型值。
  5. 单击“绑定”选项卡,然后单击“添加绑定”(+) 按钮以添加绑定。
  6. 在“添加绑定”对话框中选择 editable 属性,然后单击“确定”。
  7. 在“绑定”选项卡底部的“绑定属性”窗格中,单击“名称”下的“绑定到”项目,然后单击“值”下“绑定到”项目正对的放大镜图标。
  8. 在“绑定到”对话框中的“组件路径”下选择 CheckBox 组件,然后单击“确定”。
  9. 在舞台上选择 Checkbox 组件,然后单击“组件检查器”面板中的“参数”选项卡。
  10. 选择“控制”>“测试影片”。要测试功能,请在 TextInput 组件中键入一个值,然后取消选择 CheckBox 组件。现在应该无法在 TextInput 组件中输入文本。

架构项目设置

组件的架构显示可使用什么属性和字段进行数据绑定。每个属性或字段都有一些控制验证、格式化、类型转换和其他功能的设置,这些设置影响数据绑定和数据管理组件处理字段数据的方式。“架构属性”窗格(“架构”选项卡的底部窗格)显示了这些设置,您可以查看并进行编辑。这些设置依据所控制的功能分为五组:

基本设置 每个字段或属性都具有以下基本架构设置。在大多数情况下,只需将这些设置绑定到字段。

验证设置 验证设置适用于充当绑定目标的任何字段。如果要控制对最终用户所输入数据进行的验证,您通常将修改这些设置。要进行设置,请完成从 UI 组件到数据组件的绑定,然后为数据组件的字段选择适当的验证设置。一个常见的例子是将用户输入绑定到连接器组件(如 XMLConnector 组件或 WebServiceConnector 组件)的 params 属性。另一个常见的例子是将 UI 组件绑定到 DataSet 组件的数据字段。

验证按以下方式进行:在执行任何绑定之后,将根据目标字段的数据类型的验证规则对新数据进行检查。然后生成一个组件事件来显示检查的结果。如果数据有效,则生成有效事件;否则生成无效事件。绑定中涉及的两种组件均可发出事件。可以忽略这些事件。如果希望进行任何操作作为这些事件的结果(如向最终用户提供反馈),您必须编写一些接收有效和/或无效事件的动作脚本代码。

格式程序设置 在需要将字段的值转换为字符串时,将应用格式程序设置。大多数情况下这种设置将用于显示目的,如将 DataSet 字段的数据绑定到“标签”或“文本区域”组件的 text 属性。在将字段的数据绑定到数据类型不是字符串的某些组件时,该字段的格式程序设置将被忽略。

注意:如果未指定格式程序,则在字段的值需要为字符串时,将会应用默认转换。

有关格式程序的完整列表,请参阅架构格式程序(仅限于 Flash Professional)

种类和编码器设置 种类和编码器设置用于激活某些特殊功能。有关信息,请参阅使用种类和编码器

默认设置 这些设置使您可以设置各种情况的默认值。这些设置有两个用途:

何时编辑架构项目设置

在使用数据组件和/或数据绑定建立应用程序时,您需要对应用程序中组件的某些(但不一定是全部)字段应用架构项目设置。下表摘要列出了架构项目设置最常见的用途,并帮助您确定何时需要编辑这些设置。

组件

属性/字段

设置

何时使用

任何连接器

params(及其子字段)

验证选项:只读,必需

如果需要验证

results(及其子字段)

格式程序,格式程序选项

用于需要格式化以显示为文本的字段

默认值

用于字段值有时未定义的字段

DataSet

任何数据字段

名称,数据类型

必须为每个定义的数据集字段进行这些设置

验证选项:只读,必需

如果需要验证

格式程序,格式程序选项

用于需要格式化以显示为文本的字段

默认值

用于字段值有时未定义的字段,或指定新创建数据集记录的初始值

UI 组件

通常不需要对 UI 组件的架构设置进行任何更改

任何组件

任何属性或字段

种类,种类选项,编码,编码选项

各种目的,如使用种类和编码器中所述

任何连接器

results(及其子字段)

路径

标识虚拟架构字段数据的位置

使用种类和编码器

种类和编码器是对架构项目的数据执行附加特殊处理的插入模块。它们通常相互结合使用以完成常见任务。下面是种类和编码器常见用途的列表。

已计算 DataSet 字段 已计算字段是基础数据表中不存在的虚拟字段。已计算字段使开发人员能够在运行时创建和更新动态字段值。在根据对记录中其他字段执行的计算和级联计算和显示值时,它尤为方便(例如,可以创建将名和姓字段组合在一起的已计算字段,以便向用户显示全名)。

要为 DataSet 组件设置已计算字段:

  1. 选择 DataSet 组件,然后单击“组件检查器”的“架构”选项卡。
  2. 使用“添加组件属性”(+) 按钮为 DataSet 组件创建一个永久性字段。
  3. 使用“架构属性”窗格为新组件属性指定一个字段名,并将其种类设置为已计算。
  4. 使用 DataSet 组件的 calcFields 事件在运行时为此字段指定一个值。

    注意:只能在 DataSet 组件的 calcFields 事件内将值指定给已计算字段。

设置 XML 文档的架构 在 XML 文档中,所有数据都是以字符串形式存储的。有时您希望以除字符串之外的数据类型提供 XML 文档的字段。以下示例显示从 XML 文件中提取数据的应用程序。

<datapacket>
   <row id="1" billable="yes" rate="50" hours="3" />  
   <row id="2" billable="no" rate="50" hours="6" />
</datapacket>

如果使用此 XML 文件为 XMLConnector 组件的 results 属性导入架构,它将生成以下内容:

results :XML
   datapacket :Object
      row :Array
         [n] :对象
            @billable:Boolean
            @hours :Integer
            @id :Integer
            @rate :Integer

但是,假设您想将行节点处理为网格内的记录,并且想将 @billable 属性处理为布尔值并在网格中显示 truefalse 值(而不是 yesno)。使数据进入网格十分简单。您只需将行架构字段绑定到网格的 dataProvider 属性。以下过程说明如何将 @billable 属性处理为布尔值,并显示 truefalse 值。

要使 @billable 属性显示 true 或 false 值:

  1. 选择 XMLConnector 组件,并单击“架构”选项卡。
  2. 选择 @billable 架构字段,然后在“架构属性”窗格中选择 encoder 属性。
  3. 确保“编码器”设置为布尔值。选择“编码器选项”。您现在可以选择定义哪些字符串代表 true 值,哪些字符串代表 false 值。
  4. 为要设置为 true 的字符串输入 yes,并为要设置为 false 的字符串输入 no

    编码器现在将按原始格式(字符串)提取 XML 数据,并将其转换为正常格式(动作脚本类型布尔值)。使用编码器选项,它知道如何对字符串值进行正确编码。

  5. 单击“格式程序”并选择“布尔值”。选择“格式程序选项”。您现在可以选择定义应如何将 truefalse 值显示为字符串。
  6. 为表示 true 的字符串输入 True,并为表示 false 的字符串输入 False

    格式程序现在将提取正常格式(动作脚本类型布尔值),并将其格式化为字符串值 truefalse 以供显示。

设置架构路径

架构字段的 path 属性是可选设置,在组件架构不恰当时的特殊情况下使用。使用此设置,您可以创建虚拟架构字段(存在于某个位置但从另一个位置提取字段值的字段)。此属性的值是使用以下格式之一输入的路径表达式:

执行数据绑定时,Flash 将检查架构字段是否存在路径表达式。如果存在,它即会使用路径表达式查找正确的值。请参阅虚拟 XML 架构

注意:路径表达式始终是相对于架构字段的父节点执行的。

关于编辑“架构属性”窗格的内容

您可以编辑“架构属性”窗格内的任何内容,甚至可以编辑来自外部来源(如 Web 服务 WSDL 文件)的架构。可以随时更改任何架构的任何字段的任何值,但有以下限制: