编码器确定应如何在运行时对组件的架构项目进行编码/解码。允许使用的编码器数量不受限制,并且您可以创建其他自定义编码器/解码器。编码器是由 Flash MX Professional 2004 Configuration/Encoders 文件夹中的 XML 文件定义的。该定义包括以下元数据:
Flash MX Professional 2004 自带了以下编码器:
None 默认编码器。不执行编码/解码。
Boolean 将字符串数据转换为布尔值动作脚本类型。必须(通过“编码器选项”属性)指定一个或多个将被解释为 true
的字符串,以及一个或多个将被解释为 false
的字符串。这些设置区分大小写。
Date 将字符串数据转换为日期动作脚本类型。必须(通过“编码器选项”属性)指定一个模板字符串,该模板字符串按如下方式工作:
"YYYY"
、"MM"
、"DD"
、"HH"
、"NN"
和/或 "SS"
的 0 个或 1 个实例,以及任何其他字符的组合。 DateToNumber 将日期对象转换为与其相当的数字。DataSet 组件为日期类型的字段使用此编码器。这些值以数字形式存储在 DataSet 组件内,以便可以正确地对它们进行排序。
Number 将字符串数据转换为数字动作脚本类型。此编码器没有创作设置。
DatasetDeltaToXUpdateDelta 此编码器与 DataSet 组件结合使用。它从 DeltaPacket 中提取信息并生成 XPath 语句,该语句被传递到 XupdateResolver 组件中以生成 Xupdate 语句。此编码器从以下两处获取生成 XPath 语句所需的信息:
rowNodeKey
属性,您必须通过“编码器选项”属性(在下面定义)指定该属性。使用此信息,编码器可以生成在 XML 文件内标识数据所需的正确 XPath 语句。
编码器选项包含一个属性:
rowNodeKey
属性(字符串类型)。为了使某个 XML 文件可更新,该文件必须具有如下结构:即代表数据集中记录的节点可以使用 Xpath 语句唯一标识。此属性结合 XPath 语句和字段参数来唯一标识 XML 文件内的行节点,以及使其唯一的数据集内的字段。
在以下示例中,行节点代表 XML 文件内的记录。id
属性的值使行具有唯一性。
<datapacket> <row id="1" date="01/01/2003" rate="50" hours="5" /> <row id="2" date="02/04/2003" rate="50" hours="8" /> </datapacket>
用于唯一标识行节点的 XPath 将如下所示:
datapacket/row[@id=’xxx’]
其中 xxx 代表 id
属性的值。通常情况下,XML 文件中的 id
属性将绑定到 DataSet 组件的 id
字段。因此,rowNodeKey
值将如下所示:
datapacket/row[@id=’?id’]
?
标识出这是一个字段参数。id
值指定数据集中字段的名称。XUpdateResolver 组件将在运行时替换数据集的 id
字段中的值,以便为所指记录生成正确的 Xpath。
在下一个示例中,“管理”的联系人节点(带有类别属性)代表 XML 文件内的记录,而雇员标识子节点包含使记录唯一的值:
<datapacket>
<company id="5" name="ABC tech">
<contacts category="Mgmt">
<contact>
<empId>555</employeeId>
<name>Steve Woo</name>
<email>steve.woo@abctech.com</email>
</contact>
<contact>
<empId>382</employeeId>
<name>John Phillips</name>
<email>john.phillips@abctech.com</email>
</contact>
...
...
</contacts>
<contacts category="Executives">
...
...
</contacts>
...
...
</company>
</datapacket>
此 XML 文件的 rowNodeKey
值将如下所示:
datapacket/company/contacts[@category=’Mgmt’]/contact
[empId=’?empId’]