“架构”选项卡能让您查看选定组件的架构。架构包含组件的可绑定属性、它们的数据类型、它们的内部结构以及各种特殊属性的列表。数据绑定功能需要此信息才能正确处理数据。
“架构树”窗格(“架构”选项卡的顶部窗格)显示选定组件的可绑定属性,以及它们由一个或多个架构字段表示的内部结构(组件属性和架构字段也称为架构项目)。“架构属性”窗格(“架构”选项卡的底部窗格)显示有关选定架构项目的详细信息。
注意:所有组件均具有属性,但在默认情况下,为了避免 UI 过于混乱,“架构”选项卡只显示通常包含动态数据的那些属性。这些属性称为可绑定属性。通过手动将属性添加到架构面板或使用动作脚本代码,您可以绑定到任何属性。请参阅在“绑定”选项卡中处理绑定(仅限于 Flash Professional)。
组件的架构描述数据的结构和类型,但与数据的实际存储方式无关。例如,WebServiceConnector 组件或 XMLConnector 组件中的结果可以具有相同的架构,即使 Web 服务结果存储为动作脚本数据结构(对象、数组、字符串、布尔值和数字),而 XMLConnector 组件结果存储为 XML 对象。使用数据绑定访问组件架构内的字段时,您可以使用相同的过程,不管数据是如何存储的。
组件标识了它的哪些属性是可绑定的。这些可绑定属性以顶层架构项目(组件属性)的形式出现在“架构”面板中。组件属性可以具有自己的内部结构(架构),该结构定义可绑定到应用程序内其他组件属性的附加属性(架构字段)。您为 WebServiceConnector 组件对 WSDL 进行内部检查就是一个很好的实例。WSDL 定义描述 Web 服务的参数和结果。WebServiceConnector 组件包含两个可绑定属性(params
和 results
)。当 WebServiceConnector 组件对 WSDL 进行内部检查时,创作工具将自动为 params
和 results
属性创建架构,以便它映射 WSDL 内定义的架构。
为组件创建架构的方法有多种:
当您导入示例 XML 文件用作架构时,Flash MX Professional 2004 将检查示例文档并创建一个架构,该架构代表文档的 XML 元素和属性以及文本值的数据类型(数字、布尔值或字符串)的嵌套结构。任何出现多次的元素在架构中显示为数组。
架构出现在“架构”选项卡中。现在即可在 XML 元素和应用程序内的组件属性之间创建绑定。
注意:某些 XML 文档可能具有 Flash MX Professional 2004 无法表示的结构,例如,包含混在一起的文本和子元素的元素。
使用以下过程将架构字段添加到架构项目。
新字段即被添加为选定属性的子字段。
视架构项目的类型而定,有三种可能的方案:
如果将任何组件属性添加到架构,您可以使它们成为可绑定属性。以下过程说明如何创建使用 CheckBox 组件指示 TextInput 组件是否可编辑的应用程序。然而,在本示例中,TextInput 组件的 editable
属性不可绑定,因此必须修改它的架构。
editable
属性,然后单击“确定”。组件的架构显示可使用什么属性和字段进行数据绑定。每个属性或字段都有一些控制验证、格式化、类型转换和其他功能的设置,这些设置影响数据绑定和数据管理组件处理字段数据的方式。“架构属性”窗格(“架构”选项卡的底部窗格)显示了这些设置,您可以查看并进行编辑。这些设置依据所控制的功能分为五组:
基本设置 每个字段或属性都具有以下基本架构设置。在大多数情况下,只需将这些设置绑定到字段。
注意:开发人员几乎不用更改此设置。然而,在某些情况下,XML 文件架构内所包含属性的储存类型在应设置为“属性”时可能默认为“标量”。
验证设置 验证设置适用于充当绑定目标的任何字段。如果要控制对最终用户所输入数据进行的验证,您通常将修改这些设置。要进行设置,请完成从 UI 组件到数据组件的绑定,然后为数据组件的字段选择适当的验证设置。一个常见的例子是将用户输入绑定到连接器组件(如 XMLConnector 组件或 WebServiceConnector 组件)的 params
属性。另一个常见的例子是将 UI 组件绑定到 DataSet 组件的数据字段。
验证按以下方式进行:在执行任何绑定之后,将根据目标字段的数据类型的验证规则对新数据进行检查。然后生成一个组件事件来显示检查的结果。如果数据有效,则生成有效事件;否则生成无效事件。绑定中涉及的两种组件均可发出事件。可以忽略这些事件。如果希望进行任何操作作为这些事件的结果(如向最终用户提供反馈),您必须编写一些接收有效和/或无效事件的动作脚本代码。
required=true
但尚未设置值,则验证失败。readonly=true
,则对此字段执行任何绑定均会生成无效事件,并且字段将发生更改。格式程序设置 在需要将字段的值转换为字符串时,将应用格式程序设置。大多数情况下这种设置将用于显示目的,如将 DataSet 字段的数据绑定到“标签”或“文本区域”组件的 text
属性。在将字段的数据绑定到数据类型不是字符串的某些组件时,该字段的格式程序设置将被忽略。
true
和 false
值的文本的设置。注意:如果未指定格式程序,则在字段的值需要为字符串时,将会应用默认转换。
有关格式程序的完整列表,请参阅架构格式程序(仅限于 Flash Professional)。
种类和编码器设置 种类和编码器设置用于激活某些特殊功能。有关信息,请参阅使用种类和编码器。
默认设置 这些设置使您可以设置各种情况的默认值。这些设置有两个用途:
results
属性允许具有未定义值。 在使用数据组件和/或数据绑定建立应用程序时,您需要对应用程序中组件的某些(但不一定是全部)字段应用架构项目设置。下表摘要列出了架构项目设置最常见的用途,并帮助您确定何时需要编辑这些设置。
组件 |
属性/字段 |
设置 |
何时使用 |
---|---|---|---|
任何连接器 |
|
验证选项:只读,必需 |
如果需要验证 |
|
格式程序,格式程序选项 |
用于需要格式化以显示为文本的字段 |
|
默认值 |
用于字段值有时未定义的字段 |
||
DataSet |
任何数据字段 |
名称,数据类型 |
必须为每个定义的数据集字段进行这些设置 |
验证选项:只读,必需 |
如果需要验证 |
||
格式程序,格式程序选项 |
用于需要格式化以显示为文本的字段 |
||
默认值 |
用于字段值有时未定义的字段,或指定新创建数据集记录的初始值 |
||
UI 组件 |
通常不需要对 UI 组件的架构设置进行任何更改 |
||
任何组件 |
任何属性或字段 |
种类,种类选项,编码,编码选项 |
各种目的,如使用种类和编码器中所述 |
任何连接器 |
|
路径 |
标识虚拟架构字段数据的位置 |
种类和编码器是对架构项目的数据执行附加特殊处理的插入模块。它们通常相互结合使用以完成常见任务。下面是种类和编码器常见用途的列表。
已计算 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
属性处理为布尔值并在网格中显示 true
或 false
值(而不是 yes
或 no
)。使数据进入网格十分简单。您只需将行架构字段绑定到网格的 dataProvider
属性。以下过程说明如何将 @billable
属性处理为布尔值,并显示 true
或 false
值。
encoder
属性。true
值,哪些字符串代表 false
值。true
的字符串输入 yes,并为要设置为 false
的字符串输入 no。
编码器现在将按原始格式(字符串)提取 XML 数据,并将其转换为正常格式(动作脚本类型布尔值)。使用编码器选项,它知道如何对字符串值进行正确编码。
true
和 false
值显示为字符串。true
的字符串输入 True,并为表示 false
的字符串输入 False。
格式程序现在将提取正常格式(动作脚本类型布尔值),并将其格式化为字符串值 true
或 false
以供显示。
架构字段的 path
属性是可选设置,在组件架构不恰当时的特殊情况下使用。使用此设置,您可以创建虚拟架构字段(存在于某个位置但从另一个位置提取字段值的字段)。此属性的值是使用以下格式之一输入的路径表达式:
field [.field]...
,其中 field
是字段的名称(如 addresslist.street
)。XPath
,其中 XPath
是标准 XPath 语句(如 addressList/street
)。执行数据绑定时,Flash 将检查架构字段是否存在路径表达式。如果存在,它即会使用路径表达式查找正确的值。请参阅虚拟 XML 架构。
注意:路径表达式始终是相对于架构字段的父节点执行的。
您可以编辑“架构属性”窗格内的任何内容,甚至可以编辑来自外部来源(如 Web 服务 WSDL 文件)的架构。可以随时更改任何架构的任何字段的任何值,但有以下限制:
注意:可以使用多种方式重新载入组件属性的架构,其中包括输入新的 WSDL URL、为 Web 服务选择不同的操作或从示例 XML 文件导入新的 XML 架构。